【发布时间】:2011-03-11 18:04:19
【问题描述】:
我有一个 try...catch...finally 块,其 catch 重新抛出异常:
try
{
startBombCountdownAndRunAsFastAsYouCan();
}
catch (BombExplodedOnYourFaceException ex)
{
displayMessage("Hahaha! It blew up on your face!");
throw ex;
}
finally
{
cleanFloor();
}
displayMessage("Wow, you pulled it off!");
在这个例子中,无论是否抛出异常,我都需要执行cleanFloor()。那么问题来了:finally 子句是否总是被执行,而不管对应的catch 子句中是否重新抛出异常?
【问题讨论】:
-
这是什么语言的?不同语言的行为之间可能存在细微差别。
-
没有特别的语言。在我的实际程序中,我使用的是 C#。 (我讨厌它的每一分钟。)
标签: control-flow try-catch-finally