Gestion des exceptions dans le code pureQuery

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().

Commentaires