Weitere aktuelle Java-Titel finden Sie bei dpunkt.
 Inhaltsverzeichnis   Auf Ebene Zurück   Seite Zurück   Seite Vor   Auf Ebene Vor   Eine Ebene höher   Index


18.2.7

Fehlerbehandlung


Beim Auftreten eines Fehlers bei JDBC API-Aufrufen wird vom JDBC-Treiber eine SQLException ausgelöst. Deshalb sollte man JDBC-Aufrufe immer in einen try/catch-Block einschließen, in dem Fehler entsprechend behandelt werden können: Die Ursache von Fehlern bei JDBC-Aufrufen kann entweder beim Datenbanksystem oder beim JDBC-Treiber selbst liegen. Tabelle 18.2 zeigt die Methoden der Klasse SQLException, die nähere Informationen über aufgetretene Fehler liefert. Abhängig von Treiber- oder Datenbanksystem-Fehlern liefern sie teilweise andere Informationen zurück.

Folgendes Beispiel zeigt, wie Laufzeitfehler von JDBC abgefangen und Informationen zum Fehler ausgegeben werden:
  try {
    // Hier JDBC-Aufrufe
    ...
  } catch(SQLException e) {
    do {
      // Ausgabe von Fehlermeldung und Fehlercodes
      System.out.println(e.getMessage());
      System.out.println("ANSI-92 Code: "+e.getSQLState());
      System.out.println("DB-Code: "+e.getErrorCode());  
      // Nächste Exception abrufen.
      e = e.getNextException();
      // Gibt es weitere Exceptions?
    } while(e != null);
  }
  ...
Treten mehrere Fehler bei der Ausführung auf, so werden mehrere SQLException-Exemplare miteinander verkettet. Über die Methode getNextException() kann man jeweils das nächste SQLException-Exemplar abrufen. Wurden alle abgerufen, liefert die Methode als Ergebnis null zurück.

Tabelle 18.2: Methoden der Klasse SQLException zur Fehlerabfrage
MethodeWert bei Treiber-FehlerWert bei DB-Fehler
String getMessage()Fehlermeldung Fehlermeldung
int getErrorCode()DB-spezifischer FehlercodeDB-spezifischer Fehlercode.
String getSQLState()null (ohne Bedeutung)5-stelliger ANSI-92 SQL Status-Code als String.

Bei der Entwicklung datenbanksystemunabhängiger JDBC-Anwendungen empfiehlt es sich, die Fehlerabfrage über ANSI-92 Fehlercodes durchzuführen, da diese Codes von verschiedenen Datenbanksystemen bereitgestellt werden.


 Inhaltsverzeichnis   Auf Ebene Zurück   Seite Zurück   Seite Vor   Auf Ebene Vor   Eine Ebene höher   Index

Copyright © 2002 dpunkt.Verlag, Heidelberg. Alle Rechte vorbehalten.