C# 异常处理中的堆栈调用

C# 异常处理中的堆栈调用,c#,exception,C#,Exception,根据设计指南,捕获异常应该从更多规范异常开始到System.exception。 比如: try { } catch(IOException IOEx) { } catch(ArrayIndexOutOfRangeException AIE) { } ..... catch(Exception ex) { } 我听说CLR跟踪堆栈以逐个跟踪异常以找到匹配的异常(如果发生错误)。 由于堆栈在本质上是“后进先出”的,所以CLR不会向内查看 倒序?(即异常..ArrayIndexOutOfRa

根据设计指南,捕获异常应该从更多规范异常开始到System.exception。

比如:

try
{


}
catch(IOException IOEx)
{
}
catch(ArrayIndexOutOfRangeException AIE)
{
}
.....
catch(Exception ex)
{
}
我听说CLR跟踪堆栈以逐个跟踪异常以找到匹配的异常(如果发生错误)。 由于堆栈在本质上是“后进先出”的,所以CLR不会向内查看 倒序?(即异常..ArrayIndexOutOfRangeException..IOException)

否-本例中的堆栈是调用堆栈,因此如果在当前方法中找不到处理程序,它将向上移动堆栈以查找处理程序。但是,在一个特定的方法中,处理程序是按照指定的顺序进行测试的。

否-本例中的堆栈是调用堆栈,因此如果在当前方法中找不到处理程序,它将向上移动堆栈以查找处理程序。但是,在特定的方法中,处理程序按照指定的顺序进行测试