【问题标题】:What is the best approach to handle errors in WCF service?处理 WCF 服务中的错误的最佳方法是什么?
【发布时间】:2016-01-19 11:27:38
【问题描述】:

我读过这个问题: What is the best approach to handle exceptions in WCF service?

这回答了如何处理异常

我见过很少的服务会为每个方法返回包含 Data 和 Error 对象(如果有)的 MyServiceResult 类。永远不要扔FaultExceptions。因此客户端将在结果中以“优雅”响应的形式接收此信息。

例如

[OperationContract]
MyServiceResult Login(string userName, string password);

我的问题是哪种处理错误的方法更好,为什么?

【问题讨论】:

  • 我认为 Faultcontract 更好.....如果服务器端出现未处理的异常,您的第二种方法可能会失败。
  • @Viru,如果每个方法都在 try/catch 中被扭曲并处理任何异常,服务器上怎么会有未处理的异常?
  • 我回答你的问题了吗?

标签: c# wcf


【解决方案1】:

这个问题类似于在通常的内部进程执行中处理被调用方法中的错误的最佳方法是什么。答案是这取决于您期望的错误是什么。意思是什么是异常(一些意外的方法行为),可以处理的错误是什么。我相信异常不应该创建程序工作流。所以抛出 WCF FaultException 对我来说很糟糕。在这种情况下,正如您提到的,返回一些带有预期错误的结果对象可以工作。

如需进一步阅读,我强烈建议您查看 Steve McConnell Code Complete 一书,第 8.3 章错误处理技术和 8.4 异常。我相信 WCF 在这里并没有太多改变规则。

【讨论】:

    猜你喜欢
    • 2010-12-04
    • 2017-11-13
    • 2010-10-11
    • 1970-01-01
    • 2015-06-12
    • 2017-12-26
    • 1970-01-01
    • 2020-06-18
    • 1970-01-01
    相关资源
    最近更新 更多