Cuando se usa el Controlador Microsoft JDBC para SQL Server, todas las condiciones de error de la base de datos se devuelven a la aplicación Java como excepciones mediante la clase SQLServerException. Los siguientes métodos de la clase SQLServerException están heredados de java.sql.SQLException y java.lang.Throwable y se pueden emplear para devolver información específica sobre el error de SQL Server que se ha producido.

  • getSQLState devuelve el código de estado X/Open o SQL99 de la excepción.

  • getErrorCode devuelve el número específico del error de la base de datos.

  • getMessage devuelve el texto completo de la excepción. El texto del mensaje de error describe el problema y, con frecuencia, incluye marcadores de posición de información tales como nombres de objetos, que se incluyen en el mensaje de error cuando se muestra.

  • getNextException devuelve el siguiente objeto SQLServerException o nulo si no hay más objetos de excepción que devolver.

En el siguiente ejemplo, se pasa a la función una conexión abierta a la base de datos de ejemplo SQL Server AdventureWorks y se construye una instrucción SQL incorrecta que no incluye una cláusula FROM. A continuación, se ejecuta la instrucción de SQL y se procesa una excepción de 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);
   }
}

Vea también