如何跳过C#中的finally块?
是否可以跳过最后的'即使它在尝试后仍然存在并且阻止阻塞。
答案 0 :(得分:3)
我能想到的唯一方法就是一面旗帜:
bool skipFinally = false;
try
{
DoSomething();
skipFinally = true;
DoSomethingElse();
}
finally
{
if (!skipFinally)
DoFinallyStuff();
}
因此finally
块会逐字执行,但您可以决定该做什么。
但它有一种设计缺陷的味道。为什么你的finally
块中的代码可能不应该首先被执行?
但另一方面:C#编译器为迭代器块生成如上所示的代码。