Bien que pureQuery soit basé sur la connectivité JDBC, l'interface de données pureQuery
ne nécessite aucune application pour traiter les exceptions vérifiées.
Vous n'avez pas à inclure les appels à des méthodes pureQuery dans les blocs try.
Lorsque c'est possible, pureQuery intercepte les SQLExceptions et autres exceptions vérifiées à partir du pilote JDBC sous-jacent. pureQuery émet alors des exceptions dans l'environnement d'exécution qui encapsulent les exceptions interceptées.
Les exceptions de l'environnement d'exécution pureQuery sont les suivantes :
- DataRuntimeException
- Cette exception étend java.lang.RuntimeException, de sorte qu'elle hérite des méthodes getMessage() et getCause().
- Pour plus d'informations sur une SQLException encapsulée, vous pouvez utiliser les méthodes suivantes :
- public Integer getErrorCode()
- Si une exception DataRuntimeException encapsule une exception SQLException, cette méthode renvoie le code SQLCODE.
- Si une exception DataRuntimeException n'encapsule pas une exception SQLException, cette méthode renvoie la valeur -99999.
- public String getSQLSTATE()
- Si une exception DataRuntimeException encapsule une exception SQLException, cette méthode retourne le SQLSTATE.
- Si une exception DataRuntimeException n'encapsule pas d'exception SQLException, cette méthode retourne la valeur "FFFFF".
- public SqlErrorType getErrorType()
- Qu'une exception DataRuntimeException encapsule ou non une exception SQLException, cette méthode renvoie l'une des valeurs suivantes :
- 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
Pour savoir si les applications peuvent récupérer d'une exception SQLException, utilisez la méthode booléenne isTransient(). Cette méthode renvoie true si l'exception SQLException est une instance de SQLTransientException, qui est l'une des trois sous-classes de SQLException que JDBC 4.0 introduit.
- UpdateManyException
- Cette exception est une extension de DataRuntimeException. Elle fournit
les méthodes suivantes :
- getUpdateCounts() renvoie un tableau à deux dimensions int
qui contient les résultats d'une mise à jour par lots.
- HeteroBatchSQLException[][] getHeteroBatchSQLExceptionArray() renvoie un tableau à deux dimensions
qui contient les exceptions HeteroBatchSQLExceptions spécifiques à une ligne
ainsi que d'autres informations d'erreur renvoyées par la mise à jour par lots.
- getBatchNonSpecificExceptions() renvoie une exception
HeteroBatchSQLException depuis la mise à jour par lots pour toute exception SQLException
non spécifique à une ligne. S'il existe plusieurs SQLException, les exceptions
HeteroBatchSQLException sont chaînées.
Remarque : S'il existe plusieurs exceptions, elles
sont chaînées. Pour récupérer les exceptions HeteroBatchSQLException chaînées,
appelez la méthode getNextException().