【问题标题】:Specialised FaultException subclass or FaultException<T>专门的 FaultException 子类或 FaultException<T>
【发布时间】:2012-03-02 14:58:59
【问题描述】:

我希望我的 WCF 服务能够返回一些已知错误。即定义的FaultContract

我有点困惑是应该派生自己的FaultException 子类,还是创建一个细节类并使用FaultException&lt;TDetail&gt;

似乎有一些分散的例子,我只是想知道普遍的共识是什么。

我倾向于派生,因为我认为客户端代码在捕获 MyException 时会看起来更干净,而不是以 WCF 为中心的 FaultException&lt;MyExceptionDetail&gt;,但我对此并没有任何强烈的感觉。

【问题讨论】:

  • 由于您的服务无法返回FaultException 的派生类,因此您的选择很明确。
  • 看来你是对的,谢谢。我一定找到了一些不好的例子。

标签: c# wcf exception-handling faultexception faultcontract


【解决方案1】:

您应该使用FaultException 通常用于未知或一般错误,FaultException&lt;T&gt; 用于类型错误。

类型错误更类似于标准 .NET 中的类型异常,因此它们将是首选方法。

请注意,您需要在服务合同定义中使用fault contracts,否则所有异常都会以FaultException 的形式到达客户端,即使您抛出FaultException&lt;T&gt;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-12-24
    • 1970-01-01
    • 1970-01-01
    • 2011-08-29
    • 1970-01-01
    • 1970-01-01
    • 2014-01-24
    相关资源
    最近更新 更多