Springフレームワークでの例外処理に関する2つの質問があります。DataAccessExceptionとSQLException
1)SpringフレームワークのDataAccessException
が実行時例外であるのに対し、コアJavaのSQLException
が例外をチェックするのはなぜですか?
2)Springの例外処理は、Javaの例外ハンドリング機構よりどのような利点がありますか?
Springフレームワークでの例外処理に関する2つの質問があります。DataAccessExceptionとSQLException
1)SpringフレームワークのDataAccessException
が実行時例外であるのに対し、コアJavaのSQLException
が例外をチェックするのはなぜですか?
2)Springの例外処理は、Javaの例外ハンドリング機構よりどのような利点がありますか?
DataAccessException
をSQLException
以上に使用する理由は、より一般的にはこの問題を説明するためです。 OracleとCassandraの2つの実装が異なるリポジトリまたはDAOインタフェースを使用している場合は、この1つの例外を両方の実装で明示的に失敗させることができます。
なぜこれがランタイムであり、チェックされた例外ではないのかによって、発信者は明示的にそれを処理する必要がありません。私の経験では、SQLException
またはDataAccessException
がスローされた場合、誰かに泡立たせること以外にできることはあまりありません。各レイヤーにスローされたものを宣言しなければならないのは、呼び出し側にとってより大きな負担です。そのうちの1人がキャッチして扱うことができれば、そうすることができます。ここで
はのJavaDoc(感謝@Tom!)
は、上記のインライン化リンク@Tomしてくれてありがとう、です。いいですよ。 – Todd