【发布时间】:2010-11-28 17:54:59
【问题描述】:
在 C# 中,异常处理堆栈帧被推送到调用堆栈的顺序是什么。如果我有方法:
private void MyMethod() {
try {
DoSomething();
}
catch (Exception ex)
{
//Handle
}
}
是否为每个异常处理程序创建了一个单独的堆栈帧,如下所示?
DoSomething stackframe<br/>
Exception stackframe<br/>
MyMethod stackframe<br/>
或
DoSomething stackframe<br />
MyMethod stackframe<br />
Exception stackframe<br />
或
还有什么?
【问题讨论】:
-
你可以自己试试这个。使用您要测试的代码创建一个应用程序,然后在调试器中单步执行它,检查每一步的调用堆栈。我想一旦它们是 MSIL,所有语言都是一样的,但是它们为某些语言结构发出的 MSIL 代码可能会有所不同。
标签: .net exception-handling callstack