Gestione degli errori

Quando si utilizza il driver JDBC per Microsoft SQL Server 2005 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);
   }
}

Vedere anche

Altre risorse

Diagnosi dei problemi relativi al driver JDBC