打电话服务的好习惯

时间:2012-03-22 16:01:38

标签: c# service error-handling try-catch

我正在开发一个广泛依赖Exchange Web服务的项目。截至目前,我正在try / catch打包我的所有服务电话。虽然这不是一个问题,但是它通过让一行变成10~而使代码混乱很多。

以下是我看到的选项:

  1. 创建bool TryExecute(Action action, Action failCallback)
  2. 等功能
  3. 连接我的所有服务调用并使用拦截器来包裹我的调用
  4. 这些是我缺少的替代品吗?

1 个答案:

答案 0 :(得分:2)

取决于您的实施。我会尽可能地将try / catch放置在预期失败的位置(并且可以优雅地进行操作)。 例如,将这些调用包装到接口(用于测试)并仅使用公共异常类型(例如处理EndpointNotFound并将任何意外故障包装到您自己创建的ExchangeCommunication-Exception中)。

你的两个选择似乎都处理了各种错误,我不会建议这个,但除此之外它肯定比反对DRY更好