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

Ebihara, Yuichiro Yuichiro.Ebihara @ jp.sony.com
2003年 12月 12日 (金) 14:38:40 JST


初めまして、海老原と申します。

現在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 メーリングリストの案内