finally块中的语句

0 c#

可能重复:
尝试抓住最后的问题

如果未捕获异常,则执行代码语句

try
{
  throw new Exception("test example");    
}

finally
{
  Console.WriteLine("finally block"); 
}
Run Code Online (Sandbox Code Playgroud)

And*_*are 6

是的,finally无论异常*都会阻塞.

请参阅try-finally(C#参考):

finally块对于清理try块中分配的任何资源以及运行任何必须执行的代码(即使存在异常)也很有用.无论try块如何退出,控制总是传递给finally块.

*请注意,这并非完全正确.一些例外,如a StackOverflowException将立即终止进程.但是为了这个讨论,可以相当安全地说一个finally块总会运行.