2015-01-09 92 views
7

Springフレームワークでの例外処理に関する2つの質問があります。DataAccessExceptionとSQLException

1)SpringフレームワークのDataAccessExceptionが実行時例外であるのに対し、コアJavaのSQLExceptionが例外をチェックするのはなぜですか?

2)Springの例外処理は、Javaの例外ハンドリング機構よりどのような利点がありますか?

答えて

7

DataAccessExceptionSQLException以上に使用する理由は、より一般的にはこの問題を説明するためです。 OracleとCassandraの2つの実装が異なるリポジトリまたはDAOインタフェースを使用している場合は、この1つの例外を両方の実装で明示的に失敗させることができます。

なぜこれがランタイムであり、チェックされた例外ではないのかによって、発信者は明示的にそれを処理する必要がありません。私の経験では、SQLExceptionまたはDataAccessExceptionがスローされた場合、誰かに泡立たせること以外にできることはあまりありません。各レイヤーにスローされたものを宣言しなければならないのは、呼び出し側にとってより大きな負担です。そのうちの1人がキャッチして扱うことができれば、そうすることができます。ここで

はのJavaDoc(感謝@Tom!)

  1. DataAccesssException
  2. SQLException
+0

は、上記のインライン化リンク@Tomしてくれてありがとう、です。いいですよ。 – Todd