WebLogic Serverのコンテキストで、「スロー可能なキャッチ可能を避ける」に関する良いドキュメント
質問
現在、既存のコードベース(EJB)をリファクタリングして、EJBの内側に投げられる可能性があるすべてのブロックをリッピングしています。
try {
... do some business logic
} catch(Throwable t){
... log and swallow ... :-(
}
私は、「キャッチングスロー可能」がEJBにとってノーゴーであるという適切な文書で私の周りの人々を説得したい/必要なことです(これについては多くの議論があります)。 Weblogicはすべての「エラー」条件を処理し、EJBSを無効にし、新鮮な(動作)EJBをプールに入れます。投げられることは、ウェブロジックによって提供されるこれらすべてのセキュリティネットを損なうでしょう、そしてとにかくキャッチ可能なスロー可能なものは悪い練習です(ただし、ここの人々は消極的であり、どこでも「スロー可能な」ハンマーを使用します)。
この動作が説明されているいくつかのオンラインドキュメント(Weblogic、JBossなど)を私に向けることができる人は誰でも私に指摘することができますか。私はGoogleを介して検索し、Weblogic Docsを見ましたが、何も見つけることができませんでした。一般的なJava Docだけです。
解決
彼らは、証拠はプリンにあると言います。
さまざまな種類の例外(ランタイム、エラー)を投げる以外に何もしない小さな例を書き、コンテナがそれらを優雅に処理することを示します。
これにより、批評家が彼らのトラックで死んでいるのを止めます。
他のヒント
のコピーを購入します 効果的なJava、Joshua Blochによる第2版 あなたのチームのすべてのメンバーのために。
誰もが第9章「例外」を読んでもらいます。
- 「例外を例外的な条件にのみ使用する」
- 「回復可能な条件のためにチェックされた例外とプログラミングエラーにランタイムの例外を使用してください」
- 「チェックされた例外の不必要な使用を避ける」
- 「標準的な例外の使用を支持する」
- 「抽象化に適した例外を投げる」
- 「各方法でスローされたすべての例外を文書化」
- 「詳細なメッセージに失敗キャプチャ情報を含める」
- 「失敗の原子性を努力する」
- 「例外を無視しないでください」
所属していません StackOverflow