pureQuery basiert zwar auf JDBC, die pureQuery-Datenschnittstelle erfordert jedoch nicht, dass Anwendungen geprüfte Ausnahmen verarbeiten müssen. Sie müssen Aufrufe von pureQuery-Methoden nicht in try-Blöcke einschließen.
pureQuery fängt nach Möglichkeit SQLExceptions und weitere geprüfte Ausnahmen vom zugrunde liegenden JDBC-Treiber ab. pureQuery löst dann Laufzeitausnahmebedingungen aus, die die abgefangenen Ausnahmebedingungen einschließen.
Die pureQuery-Laufzeitausnahmebedingungen sind:
- DataRuntimeException
- Durch diese Ausnahmebedingung wird java.lang.RuntimeException erweitert, sodass die Methoden getMessage() und getCause() übernommen werden.
- Sie können folgende Methoden verwenden, um Informationen zu einer eingeschlossenen SQLException zu finden:
- public Integer getErrorCode()
- Wenn DataRuntimeException SQLException einschließt, gibt diese Methode den
SQLCODE zurück.
- Wenn DataRuntimeException SQLException nicht einschließt, gibt diese Methode den Wert
-99999 zurück.
- public String getSQLSTATE()
- Wenn DataRuntimeException SQLException einschließt, gibt diese Methode den
SQLSTATE zurück.
- Wenn DataRuntimeException SQLException nicht einschließt, gibt diese Methode den Wert
"FFFFF" zurück.
- public SqlErrorType getErrorType()
- Unabhängig davon, ob DataRuntimeException SQLException einschließt, gibt diese Methode einen der folgenden Werte zurück:
- 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
Verwenden Sie die boolesche Methode isTransient(), um herauszufinden, ob Anwendungen nach einer SQLException wiederhergestellt werden können. Diese Methode gibt 'wahr' (true) zurück, wenn es sich bei der SQLException um eine Instanz von SQLTransientException handelt, die eine der drei Unterklassen der SQLException ist, die mit JDBC 4.0 eingeführt wurden.
- UpdateManyException
- Diese Ausnahmebedingung erweitert DataRuntimeException. Sie stellt die folgenden Methoden bereit:
- getUpdateCounts() gibt ein zweidumensionales int-Array zurück,
das die Ergebnisse einer Aktualisierung im Stapelbetrieb enthält.
- HeteroBatchSQLException[][] getHeteroBatchSQLExceptionArray() gibt ein zweidimensionales
Array zurück, das die zeilenspezifischen HeteroBatchSQLExceptions und andere Fehlerinformationen enthält, die
von der Aktualisierung im Stapelbetrieb zurückgegeben wurden.
- getBatchNonSpecificExceptions() gibt für alle nicht zeilenspezifischen SQL-Ausnahmebedingungen eine
HeteroBatchSQLException aus der Aktualisierung im Stapelbetrieb zurück. Wenn mehrere SQL-Ausnahmebedingungen vorhanden sind,
werden die HeteroBatchSQLExceptions miteinander verkettet.
Anmerkung: Wenn mehrere Ausnahmebedingung vorhanden sind, werden die Ausnahmebedingungen miteinander
verkettet. Rufen Sie die Methode getNextException() auf, um die verketteten
HeteroBatchSQLExceptions abzurufen.