Ausnahmebedingungsbehandlung in pureQuery-Code

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.

Feedback