私のシステムは 2 つのサイトで構成されており、WCF を使用して相互に通信しています。ときどき、1 つのサイトがそのピアで操作を呼び出したときに例外がスローされることがあります。私は、そのような場合に WCF の FaultContracts を使用する最善の方法を決定しようとしています。
過去のプロジェクトでは、重要な例外階層を作成することに慣れていました。
BaseSystemException
CustomerServiceException
CustomerNotFoundException
BadCustomerNameException
CustomerAlreadyExistsException
...
OrderServiceException
OrderNotFoundException
OrderAlreadyExistsException
...
ただし、WCF でこのような階層を実装するとすぐに面倒になります。それぞれの具体的な例外の種類を独自の FaultContract で指定する必要があるからです。現在、両方のサービスが同じシステムの一部であるため、情報や機密性の高いコールスタックなどの漏洩の問題はありません。A がそれに応じて対応できるように、B には例外でできるだけ多くの情報を提供してもらいたいと考えています。実際には、これらの例外の多くは同じ方法 (操作の失敗とユーザーへの通知) で処理されることに注意してください。ただし、例外スキームを設計するときは、すべての例外に対して同一の処理を想定したくありません。
例外の種類ごとに FaultContract を必要としないアプローチを提案できる人はいますか? もっと簡単な方法はありますか?結局のところ、これは内部インターフェースです。例外階層を使用したいという点で、私は理想主義的すぎますか?