【问题标题】:What is the best practice for a Circuit Breaker, catch all Exceptions or specific ones?断路器的最佳实践是什么,捕获所有异常或特定异常?
【发布时间】:2015-07-16 14:32:29
【问题描述】:

所以我在 C# 中使用Polly(很棒)作为断路器。

我只是在调用 Web 服务时使用它来捕获少数异常,例如:

    _policy = Policy
        .Handle<TargetInvocationException>()
        .Or<CommunicationException>()
        .Or<EndpointNotFoundException>()
...

但我想知道这样做是否会容易得多:

   _policy = Policy
        .Handle<Exception>()

然后,如果服务调用有任何类型的问题,我会被覆盖。 但是我现在担心这样做会在将来给自己带来一些我没有考虑过的问题。

有什么想法吗?

【问题讨论】:

  • 我不知道断路器是否对此有特定需求,但总的来说这是一个坏主意,最糟糕的是,这可能意味着稍后会出现一个永远不会出现的错误的发生,因为您最初的错误会发现它 - 并提供了失败背后的更清晰的理由

标签: c# web-services wcf exception-handling circuit-breaker


【解决方案1】:

对不起,如果我参加聚会有点晚了,但我只是为这种情况整理了一个库,并允许电路在不同的线程上运行,例如来自网络服务器的请求:

https://github.com/InvitationDigital/IDL.Net.CircuitBreaker

这使您可以捕获异常并仅在电路打开时出现断路器错误。

【讨论】:

    猜你喜欢
    • 2011-07-29
    • 2013-08-31
    • 1970-01-01
    • 1970-01-01
    • 2015-12-10
    • 1970-01-01
    • 2013-01-13
    • 1970-01-01
    • 2010-11-05
    相关资源
    最近更新 更多