私は通常、Webサービスの操作全体をtryブロックで覆っているコードを見ます。推論は予期しない結果を処理することです。プログラマーにそのようなスタイルに従わないように説得する最良の方法は何ですか?JavaミドルウェアWebservices - 例外処理
もちろん、わかりやすいメッセージをクライアントに提供したいと考えています。どのようにこのような状況に対処できますか?
私は通常、Webサービスの操作全体をtryブロックで覆っているコードを見ます。推論は予期しない結果を処理することです。プログラマーにそのようなスタイルに従わないように説得する最良の方法は何ですか?JavaミドルウェアWebservices - 例外処理
もちろん、わかりやすいメッセージをクライアントに提供したいと考えています。どのようにこのような状況に対処できますか?
通常、Webサービスでは、アプリケーションサービス層からスローされる可能性のある特定の例外(顧客にとって意味のあるもの)のみを捕捉します。私は、例えば、適切な応答ステータスコードに例外を翻訳するためにそれを行う:
例外:IllegalArgumentException - > Status.BAD_REQUEST、
CustomerNotFoundException - > Status.NOT_FOUND
あなたも例外マッパーを使用することができます。この目的のために、ここではApache CXFの例です: http://svn.apache.org/repos/asf/cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/security/SecurityExceptionMapper.java
500ステータスコードで結果をマッピングし、そしてそれは私の意見で大丈夫ですされていない他のすべての(ランタイム)例外 - それは内部サーバーエラーだ、おそらくソフトウェアのバグやインフラの問題は、 (DBはオフになっています)。あなたのログファイルにはstacktraceがあり、状況によっては内部メソッドの呼び出しによってArrayIndexOutofBoundExceptionが発生することを顧客に通知するのではなく、すぐに反応する必要があります。