如果未捕获异常,则执行代码语句
try
{
throw new Exception("test example");
}
finally
{
Console.WriteLine("finally block");
}
答案 0 :(得分:6)
是的,finally
阻止运行,无论异常*。
请参阅try-finally (C# Reference):
finally块非常有用 清理分配的任何资源 try块以及运行任何块 即使存在必须执行的代码 是一个例外。 始终控制 无论如何传递给finally块 试块如何退出。
* 请注意,这并非完全正确。一些例外,如StackOverflowException
将立即终止进程。但是为了这个讨论,可以相当安全地说finally
块总是会运行。
答案 1 :(得分:2)
是。最后,块总是执行。
答案 2 :(得分:2)
finally
块中的代码不执行的唯一时间是电源发生故障或计算机在执行到达之前崩溃。
答案 3 :(得分:0)
是的,即使在finally
块中抛出异常,也可以保证try
块中的代码被执行。