【发布时间】:2012-04-07 15:05:27
【问题描述】:
我编写了一个简单的程序来测试“finally”块无论如何都会执行的理论。 但是,我从下面的 pgm 看到的是,控制似乎永远不会进入外部 finaly 块。
我尝试在 Visual Studio 中执行 F5 和 Ctrl-F5,结果相同。
有人可以解释为什么我会看到这种行为吗?
控制台窗口的输出是:
内扣
内终于
外圈
未处理的异常:
..然后应用程序崩溃
public class Program
{
static void Main()
{
try
{
try
{
string s = null;
s.ToString();
}
catch
{
Console.WriteLine("inner catch");
throw;
}
finally
{
Console.WriteLine("inner finally");
}
return;
}
catch
{
Console.WriteLine("outer catch");
throw;
}
finally
{
Console.WriteLine("outer finally");
}
}
}
【问题讨论】:
标签: c# exception exception-handling try-catch