pureQuery コードでの例外処理

pureQuery は JDBC に基づいていますが、pureQuery ではアプリケーションがチェック例外を処理する必要はありません。pureQuery メソッドの呼び出しを try ブロックで囲む必要はありません。

可能な場合は、pureQuery は、基礎となる JDBC ドライバーから SQLExceptions およびその他のチェック例外をキャッチします。その後 pureQuery はキャッチされた例外をラップするランタイム例外をスローします。

pureQuery ランタイム例外は以下のとおりです。

DataRuntimeException
この例外は、java.lang.RuntimeException を拡張するため、メソッド getMessage() および getCause() を継承します。
ラップされた SQLException に関する情報を見つけるには、以下のメソッドを使用できます。
public Integer getErrorCode()
DataRuntimeException が SQLException をラップする場合、このメソッドは SQLCODE を戻します。
DataRuntimeException が SQLException をラップしない場合、このメソッドは値 -99999 を戻します。
public String getSQLSTATE()
DataRuntimeException が SQLException をラップする場合、このメソッドは SQLSTATE を戻します。
DataRuntimeException が SQLException をラップしない場合、このメソッドは値「FFFFF」を戻します。
public SqlErrorType getErrorType()
DataRuntimeException が SQLException をラップするかどうかにかかわらず、このメソッドは以下のいずれかの値を返します。
  • AUTHORIZATION_ERROR
  • CARDINALITY_VIOLATION
  • CONNECTION_ERROR
  • CONSTRAINT_VIOLATION
  • DUPLICATE_ROW_VIOLATION
  • FEATURE_NOT_SUPPORTED
  • FUNCTION_ERROR
  • INVALID_CURSOR_STATE
  • JDBC_DRIVER_ERROR
  • LIMIT_EXCEEDED
  • RESOURCE_UNAVAILABLE
  • STATIC_PACKAGE_NOT_FOUND
  • SYNTAX_ERROR
  • TIMEOUT_OR_DEADLOCK_NO_ROLLBACK
  • TIMEOUT_OR_DEADLOCK_WITH_ROLLBACK
  • UNCATEGORIZED_ERROR
アプリケーションが SQLException からリカバリーできるかどうかを判別するには、ブールの isTransient() メソッドを使用します。このメソッドは、SQLException が SQLTransientException のインスタンスの場合は true を戻します。SQLTransientException は、JDBC 4.0 で導入されている SQLException の 3 つのサブクラスのうちの 1 つです。
UpdateManyException
この例外は DataRuntimeException を拡張します。これは、バッチ更新の結果を表示するメソッド getUpdateCounts() を提供します。

フィードバック