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