Bien que basé sur JDBC, pureQuery ne nécessite pas d'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 la méthode getUpdateCounts(),
laquelle présente le résultat d'une mise à jour par lots.