我希望我的 WCF 服务能够返回一些已知错误。即定义的FaultContract
对于我应该派生自己的FaultException
子类,还是创建一个详细类并使用FaultException<TDetail>
.
似乎有两个分散的例子,我只是想知道普遍的共识是什么。
我倾向于派生,因为我认为客户端代码看起来更清晰,MyException
而不是以 WCF 为中心FaultException<MyExceptionDetail>
,但我对此并没有任何强烈的感觉。
我希望我的 WCF 服务能够返回一些已知错误。即定义的FaultContract
对于我应该派生自己的FaultException
子类,还是创建一个详细类并使用FaultException<TDetail>
.
似乎有两个分散的例子,我只是想知道普遍的共识是什么。
我倾向于派生,因为我认为客户端代码看起来更清晰,MyException
而不是以 WCF 为中心FaultException<MyExceptionDetail>
,但我对此并没有任何强烈的感觉。
您应该FaultException
通常用于未知或一般错误,以及FaultException<T>
类型错误。
类型错误更类似于标准 .NET 中的类型异常,因此它们将是首选方法。
请注意,您需要在服务合同定义中使用故障合同,否则所有异常都将作为 到达客户端FaultException
,即使您抛出FaultException<T>
.