[pgsql-jp: 31778] Re: JDBCでのSQL エラー処理

Yasunari Koide koide.yasunari @ yes.nttcom.ne.jp
2003年 12月 12日 (金) 16:46:53 JST


小出です。
お世話になっております。

私も同じようにコーディングしています。(^^ゞ

目から鱗ではないですが・・・。
一意制約違反以外の例外を捕捉する必要があるならば、
エラーメッセージをプロパティなどで管理するのはどうでしょうか。
それと、SQL例外を判断するクラスを作成して、そこにSQLExceptionを渡してあげれば、
ソース毎に条件分岐をペタ書きする手間は省けると思います。

御参考になれば、幸いです。

>初めまして、海老原と申します。
>
>現在PostgreSQL 7.3.2 + JDBCで機能検証をしているのですが、
>SQLエラーの取り扱いについてアドバイスをお願いします。
>
>DB処理で何らかのエラーや例外が発生するとSQLExceptionが
>スローされるわけですが、その際、上記環境ではgetErrorCode()
>によって発生した問題の詳細を知ることができません。
>
>調べた限りでは getMessage() によって取得できるエラーメッセージを
>元に切り分け可能ということですので、以下のようなコーディングを
>してみましたが、これは一般的な方法なのでしょうか。
>
>  try {
>    :
>  } catch (SQLException e) {
>    // 一意制約違反
>    if (e.getMessage().startsWith("ERROR:  Cannot insert a duplicate key into unique index")) {
>      :
>    } else if (e.getMessage().startsWith("...") {
>      :
>    }
>  }
>
>うまく動きはするんですが、何と言うか、あまりに・・・。
>よりスマートな定石などあればぜひお教え下さい。
>
>ちなみに7.4でエラーコードが実装されたとのことですが、JDBCドライバ
>のほうがまだ対応していないようですね。
>
>以上よろしくお願いします。
>
>--
>海老原 雄一郎 / EBIHARA Yuichiro
>E-mail: Yuichiro.Ebihara @ jp.sony.com
>



pgsql-jp メーリングリストの案内