在C#中异常处理堆栈帧被压入调用堆栈的顺序是什么。如果我有一个方法:调用堆栈上的异常处理堆栈帧的顺序
private void MyMethod() {
try {
DoSomething();
}
catch (Exception ex)
{
//Handle
}
}
是对每个异常处理如下创建一个单独的堆栈帧?
DoSomething stackframe<br/>
Exception stackframe<br/>
MyMethod stackframe<br/>
OR
DoSomething stackframe<br />
MyMethod stackframe<br />
Exception stackframe<br />
OR
别的东西吗?
你更多的方法可以自己尝试。用你想测试的代码创建一个应用程序,然后在调试器中遍历它,在每一步检查调用堆栈。我想对于所有语言来说,一旦它们是MSIL,它都是一样的,但它们可能会因为某些语言构造而发出的MSIL代码有所不同。 – OregonGhost 2009-09-16 09:17:21