我认为标题说明了我的全部问题。

我想知道,我在finally语句上执行我的代码的地方,如果它来自trycatch

可能吗?

最佳答案

好吧,最简单的方法是:

bool success = false;
try
{
    ...
    // This should be the last statement in the try block
    success = true;
}
catch(...)
{
    ...
}
finally
{
    if (success)
    {
        ...
    }
}


这不是特定的语言功能-它只是利用以下事实:除了非常特殊的情况(基本上是异步异常)之外,在分配给success之后不会发生异常。

请注意,successfalse并不意味着您的任何catch块都已执行-可能是引发了您没有捕获的异常(或者您在块)。基本上,它仅指示“ try块已到达末尾”-通常这就是所需要的。

关于c# - 有没有办法知道是否在尝试或捕获后最终执行了?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16101221/

10-13 22:01