我认为标题说明了我的全部问题。
我想知道,我在finally
语句上执行我的代码的地方,如果它来自try
或catch
。
可能吗?
最佳答案
好吧,最简单的方法是:
bool success = false;
try
{
...
// This should be the last statement in the try block
success = true;
}
catch(...)
{
...
}
finally
{
if (success)
{
...
}
}
这不是特定的语言功能-它只是利用以下事实:除了非常特殊的情况(基本上是异步异常)之外,在分配给
success
之后不会发生异常。请注意,
success
为false
并不意味着您的任何catch
块都已执行-可能是引发了您没有捕获的异常(或者您在块)。基本上,它仅指示“ try
块已到达末尾”-通常这就是所需要的。关于c# - 有没有办法知道是否在尝试或捕获后最终执行了?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16101221/