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);
}
}