Gestione degli errori
Quando si utilizza il driver JDBC per Microsoft SQL Server tutte le condizioni di errore del database vengono restituite all'applicazione Java come eccezioni utilizzando la classe SQLServerException. I seguenti metodi della classe SQLServerException sono ereditati da java.sql.SQLException e java.lang.Throwable. Possono essere utilizzati per restituire informazioni specifiche sull'errore SQL Server che si è verificato:
getSQLState restituisce il codice di stato standard X/Open o SQL99 dell'eccezione.
getErrorCode restituisce il numero di errore del database specifico.
getMessage restituisce il testo completo dell'eccezione. Nel testo del messaggio di errore viene descritto il problema e spesso sono inclusi i segnaposto per le informazioni, ad esempio i nomi degli oggetti, che sono inseriti nel messaggio di errore quando viene visualizzato.
getNextException restituisce l'oggetto SQLServerException successivo o Null se non sono più disponibili oggetti eccezione da restituire.
Nell'esempio seguente viene passata alla funzione una connessione aperta al database di esempio AdventureWorks di SQL Server e viene costruita un'istruzione SQL in formato non corretto che non contiene la clausola FROM. L'istruzione viene quindi eseguita con conseguente elaborazione di un'eccezione SQL.
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);
}
}