相关疑难解决方法(0)

为什么最后在C#中使用?

无论内部最终块是什么(几乎)始终执行,那么将代码封装到其中或将其保持未封闭之间的区别是什么?

c# exception-handling

184
推荐指数
7
解决办法
8万
查看次数

最后在特定的捕获中跳过

假设我必须捕获3个不同的异常,所以我写了3个单独的catch块.但我想跳过一个特定异常的finally块.

据我所知,使用内置标志是不可能的.但你能建议如何以优雅的方式解决这个编码问题吗?

当不使用finally时,我必须在try和其他catch块中多次重写相同的代码.

更多信息:最后我让线程睡了一段时间(await Task.Delay(5 * 1000);)但是如果我收到一个,OperationCanceledException那么我不希望最终运行.我希望它能尽快打破.

while (true)
{
    try
    {
        _cts.Token.ThrowIfCancellationRequested();
    }
    catch (OperationCanceledException)
    {
        break;
    }
    catch (CustomException1 e)
    {

    }
    catch (CustomException2 e)
    {

    }                
    finally
    {
        await Task.Delay(5 * 1000);
    }
}
Run Code Online (Sandbox Code Playgroud)

c# try-catch

3
推荐指数
1
解决办法
857
查看次数

标签 统计

c# ×2

exception-handling ×1

try-catch ×1