Specialized FaultException子类或FaultException <t> </t>

时间:2012-03-02 14:58:59

标签: c# wcf exception-handling faultexception faultcontract

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

我是否应该派生自己的FaultException子类,或创建详细信息类并使用FaultException<TDetail>,我感到有点困惑。

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

我倾向于派生,因为我认为客户端代码看起来更清晰,而不是WCF中心MyException,但我对它没有任何强烈的感受。

1 个答案:

答案 0 :(得分:0)

您通常应将FaultException用于未知或一般性错误,并将FaultException<T>用于类型错误。

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

请注意,您需要在服务合同定义中使用fault contracts,否则即使您抛出FaultException,所有例外也会以FaultException<T>的形式到达客户端。