Although pureQuery is
based on JDBC, pureQuery does not
to require applications to handle checked exceptions. You do not have
to enclose calls to pureQuery methods in try blocks.
Where it is possible, pureQuery catches SQLExceptions and other
checked exceptions from the underlying JDBC driver. pureQuery then
throws runtime exceptions that wrap the caught exceptions.
The
pureQuery runtime exceptions are:
- DataRuntimeException
- This exception extends java.lang.RuntimeException, so it inherits
the methods getMessage() and getCause().
- To find information about a wrapped SQLException, you can use
these methods:
- public Integer getErrorCode()
- If
a DataRuntimeException wraps an SQLException, this method returns
the SQLCODE.
- If a DataRuntimeException does not wrap an SQLException,
this
method returns the value -99999.
- public
String getSQLSTATE()
- If a DataRuntimeException wraps an SQLException,
this method returns
the SQLSTATE.
- If a DataRuntimeException does not wrap an SQLException,
this
method returns the value "FFFFF".
- public
SqlErrorType getErrorType()
- Whether a DataRuntimeException
wraps an SQLException or not, this
method returns one of the following values:
- 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
To find out whether
applications can recover from an
SQLException, use the boolean isTransient() method. This method returns
true if the SQLException is an instance of SQLTransientException,
which is one of the three subclasses of SQLException that JDBC 4.0
introduces.
- UpdateManyException
- This
exception extends DataRuntimeException, It provides the method getUpdateCounts(),
which shows the result of a batch update.