pureQuery コードでの例外処理

pureQuery は JDBC に基づいていますが、pureQuery Data インターフェースではアプリケーションがチェック例外を処理する必要はありません。 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() は、バッチ更新の結果が含まれる int 2 次元配列を戻します。
  • HeteroBatchSQLException[][] getHeteroBatchSQLExceptionArray() は、行固有の HeteroBatchSQLException などの、バッチ更新から戻されるエラー情報が含まれる 2 次元配列を戻します。
  • getBatchNonSpecificExceptions() は、行固有でない SQLException のバッチ更新から HeteroBatchSQLException を戻します。 複数の SQLException がある場合は、HeteroBatchSQLException は一緒にチェーニングされます。
注: 複数の例外がある場合は、それらの例外は一緒にチェーニングされます。 一緒にチェーニングされた HeteroBatchSQLException を取得するには、getNextException() メソッドを呼び出します。

Feedback