Fehlerbehandlung

Wenn Sie Microsoft SQL Server JDBC Driver verwenden, werden alle Datenbankfehlerbedingungen mit der SQLServerException-Klasse als Ausnahmen an die Java-Anwendung übergeben. Die folgenden Methoden der SQLServerException-Klasse werden von "java.sql.SQLException" und "java.lang.Throwable" geerbt. Mit ihnen können spezielle Informationen zum aufgetretenen SQL Server-Fehler zurückgegeben werden:

  • getSQLState gibt den normalen X/Open- oder SQL99-Statuscode der Ausnahme zurück.

  • getErrorCode gibt die jeweilige Datenbankfehlernummer zurück.

  • getMessage gibt den vollständigen Text der Ausnahme zurück. Der Text der Fehlermeldung beschreibt das Problem und enthält häufig Platzhalter für Informationen wie Objektnamen, die in die angezeigte Fehlermeldung eingefügt werden.

  • getNextException gibt das nächste SQLServerException-Objekt oder NULL zurück, wenn keine weiteren Ausnahmeobjekte mehr vorhanden sind.

Im folgenden Beispiel werden eine offene Verbindung zur SQL Server AdventureWorks-Beispieldatenbank an die Funktion übergeben und eine fehlerhafte SQL-Anweisung ohne FROM-Klausel erstellt. Anschließend werden die Anweisung ausgeführt und eine SQL-Ausnahme verarbeitet.

public static void executeSQLException(Connection con) {
   try {
      String SQL = "SELECT TOP 10 * Person.Contact";
      Statement stmt = con.createStatement();
      ResultSet rs = stmt.executeQuery(SQL);

      while (rs.next()) {
         System.out.println(rs.getString(4) + " " + rs.getString(6));
      }
      stmt.close();
   }
   catch (SQLException se) {
      do {
         System.out.println("SQL STATE: " + se.getSQLState());
         System.out.println("ERROR CODE: " + se.getErrorCode());
         System.out.println("MESSAGE: " + se.getMessage());
         System.out.println();
         se = se.getNextException();
      } while (se != null);
   }
}

Siehe auch

Andere Ressourcen

Diagnostizieren von Problemen mit dem JDBC-Treiber