2016-10-28 16 views
1

PostgreSQL error codesはJDBCドライバで提供されている列挙型ですか、それとも自分で列挙型を作成する必要がありますか? JDBC documentationにエラーコードについて何も見つかりません。PostgreSQL JDBCエラーコード列挙

は私が探しています何を明確にするためにEDIT

をBEGIN、これは私の既存のコードです:

catch (final SQLException e) { 
    if ("23514".equals(e.getSQLState())) { 
     // check_violation 
    } 
} 

私はそれはどちらもありませんので、ほとんどのプログラマは、その行で眉を上げるだろうと感じて自己文書化も再利用もできません。開発者が例外の原因を特定する必要があるたびに、彼はオンラインでエラーコードを検索し、条件にマジックナンバーをハードコードしなければなりません。 PostgreSQLのエラーコードを列挙するようなクラスがすでに存在してい

catch (final SQLException e) { 
    if (PGErrors.check_violation.equals(e.getSQLState())) { 
     ... 
    } 
} 

:代わりに、私のようなコードを書くことを好むでしょうか?

答えて

3

PostgreSQLのエラーコードを列挙したクラスは、すでに存在していますか?

はい、それはありません:org.postgresql.util.PSQLState

はしかし、あなたは参照ページに記載されている238個のエラーコードが存在し、そしてorg.postgresql.util.PSQLStateは41個の値を列挙します。これらの41個の値のうち33個だけがPostgreSQLエラーコードのリスト(約14%のカバレッジ)からのものです。

他の定数が必要な場合は、それらの定数を列挙する必要があります。

+0

私はそのクラスの 'check_violation'の定数が表示されません。何か不足していますか? –

+0

リストが完成していないようです:(不足しているコードの追加を要求する問題を記入するとよいでしょうか? –

+0

[Issue#534](https://github.com/pgjdbc/pgjdbc/issues/534)(March 8、 PostgreSQLのJDBCドライバのこの欠点を解決することです。残念ながら、このコメントはPostgreSQLのドキュメントに列挙されていることは自明ではありませんが、解決するまで自分の列挙を作成します。 –

関連する問題