Zwar basiert pureQuery auf JDBC, 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
- Durch diese Ausnahmebedingung wird DataRuntimeException erweitert. Sie stellt die Methode getUpdateCounts() bereit, die das Ergebnis einer Aktualisierung im Stapelbetrieb zeigt.