JDBC 4.0におけるSQLEXceptionの強化

せっかくなので続けてJDBC 4.0情報で、Lance AndersenのブログよりSQLExceptionの機能強化に関する解説です。
http://weblogs.java.net/blog/lancea/archive/2006/02/jdbc_40_sqlexce.html

  • 発生元を連鎖的に追跡できる

getCause()を連続して使用することで例外発生元を連鎖的に追跡できるようになる。

IteratableをImplementsするようになったことで拡張for文を使用して簡潔に例外を処理できるようになる。

catch(SQLException ex) {
     for(Throwable e : ex) {
        System.out.println("Error encountered: " + e);
     }
}
  • 新しいカテゴリの追加

新しいカテゴリとしてSQLTransientExceptionとSQLNonTransientExceptionの2つが追加される。SQLTransientExceptionは同じ操作の再試行が成功する可能性のある例外を、SQLNonTransientExceptionは原因が解決しない限り同じ操作は失敗する例外を表し、それぞれいくつかのサブクラスが用意される。