finally块中的语句

时间:2011-03-30 19:53:06

标签: c#

  

可能重复:
  try catch finally question

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

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

finally
{
  Console.WriteLine("finally block"); 
}

4 个答案:

答案 0 :(得分:6)

是的,finally阻止运行,无论异常*。

请参阅try-finally (C# Reference)

  

finally块非常有用   清理分配的任何资源   try块以及运行任何块   即使存在必须执行的代码   是一个例外。 始终控制   无论如何传递给finally块   试块如何退出。

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

答案 1 :(得分:2)

是。最后,块总是执行。

答案 2 :(得分:2)

finally块中的代码执行的唯一时间是电源发生故障或计算机在执行到达之前崩溃。

请参阅http://thedailywtf.com/Articles/My-Tales.aspx

答案 3 :(得分:0)

是的,即使在finally块中抛出异常,也可以保证try块中的代码被执行。