尝试阻止不会阻止异常

时间:2015-11-21 08:32:26

标签: exception exception-handling try-catch

我将部分代码放在try块中以防止异常并在catch块中处理它。但是当app被执行时抛出异常。为什么不阻止?

        private void btnAddCriteria_Click(object sender, RoutedEventArgs e)
        {
            Criteria root = trvMenu.SelectedItem as Criteria;
            if (root != null)
            {
                try
                {
                    if(root.criterias[0].criterias[0] != null)
                        MessageBox.Show("Max depth");
                }
                catch(IndexOutOfRangeException)
                {
                    if (txtNode.Text != "")
                    {
                        root.criterias.Add(new Criteria(txtNode.Text));
                    }
                    else MessageBox.Show("Enter Node text");
                }
            }
        }

enter image description here

1 个答案:

答案 0 :(得分:0)

您正在捕捉并处理IndexOutOfRangeException,但应用程序正在抛出ArgumentOutOfRangeException

您应该更改代码以处理ArgumentOutOfRangeException或两者。