Специализированный подкласс FaultException или FaultException <T> - PullRequest
0 голосов
/ 02 марта 2012

Я хочу, чтобы моя служба WCF могла возвращать некоторые известные ошибки.то есть определенный FaultContract

Я немного запутался в том, следует ли мне выводить свой собственный подкласс FaultException или создавать класс подробностей и использовать FaultException<TDetail>.

Похоже, что есть примеры того и другого, и мне просто интересно, каково общее согласие.

Я склоняюсь к выводу, так как я думаю, что клиентский код будет выглядеть чище, ловя MyException скорее, чем WCF-ориентированный FaultException<MyExceptionDetail>, но я не испытываю к этому сильных чувств.

1 Ответ

0 голосов
/ 02 марта 2012

Вы должны использовать FaultException, как правило, для неизвестных или общих неисправностей, и FaultException<T> для типизированных неисправностей.

Типизированные неисправности больше похожи на типизированные исключения в стандартном .NET, поэтому они будут предпочтительным методом..

Обратите внимание, что вам нужно использовать договоры о сбоях в определении вашего контракта на обслуживание, в противном случае все исключения дойдут до клиента как FaultException, даже если вы выбросите FaultException<T>.

...