■ 予期しない例外/予期される例外
http://msdn.microsoft.com/ja-jp/library/aa354510.aspxより
【1】予期しない例外
* 致命的なエラー:OutOfMemoryException など * プログラミング エラー:ArgumentNullException、InvalidOperationException などクライアント側の例外ハンドリング
* WCF クライアントの通信メソッドを呼び出す際、 通常は、予期しないエラーをクライアント側でキャッチしないこと
【2】予期される例外
* TimeoutException * CommunicationException * CommunicationException の派生クラスクライアント側の例外ハンドリング
try { ... // 処理 ... client.Close(); } catch (TimeoutException exception) { client.Abort(); } catch (CommunicationException exception) { client.Abort(); }
■ 主な例外
http://msdn.microsoft.com/ja-jp/library/ms789039.aspxより
CommunicationObjectFaultedException
* CommunicationObjectFaultedException がスローされるのは、 アプリケーションが何らかの例外を認識しておらず、 おそらく最初の例外をキャッチしたスレッド以外のスレッドで、 既に Faulted 状態のオブジェクトを使用しようとしたため例外のハンドリング
http://www.c-sharpcorner.com/uploadfile/ankithakur/exception-handling-in-wcf-using-fault-contract/
http://blogs.msdn.com/b/jjameson/archive/2010/03/18/avoiding-problems-with-the-using-statement-and-wcf-service-proxies.aspx
CommunicationObjectFaultedException
* アプリケーションが別のスレッドからオブジェクトに対して Abort() を呼び出したときに、オブジェクトが既に Aborted 状態であるため、 使用できなくなっていることを示しているため
■ 注意事項
* 詳細な例外情報を、セキュリティ上の理由からクライアント側に公開しないこと。
参考文献
http://d.hatena.ne.jp/griefworker/20090901/wcf_exception参考文献
MSDN
WCF エラー処理http://msdn.microsoft.com/ja-jp/library/gg281715
http://msdn.microsoft.com/ja-jp/library/ms733912.aspx
WCF トラブルシューティング
http://msdn.microsoft.com/ja-jp/library/aa702636.aspx
関連記事
WCF
WCF ~ Hello World編 ~https://blogs.yahoo.co.jp/dk521123/31872515.html
WCF ~ App.configを付加 ~
https://blogs.yahoo.co.jp/dk521123/31874697.html
WCF ~ タイムアウト / Timeout ~
https://blogs.yahoo.co.jp/dk521123/30308127.html
WCF ~ 構築手順編 ~
https://blogs.yahoo.co.jp/dk521123/28767174.html
WCF ~ 例外編[2] : 例外をクライアントに伝播させる ~
https://blogs.yahoo.co.jp/dk521123/31748722.html