Gestión de Excepciones y Advertencias en JDBC: Manejo de SQLException y SQLWarning

Enviado por Programa Chuletas y clasificado en Informática y Telecomunicaciones

Escrito el en con un tamaño de 2,29 KB

Gestión de excepciones JDBC

En el ejemplo HolaMundoJDBC.java, tanto el código para establecer la conexión como el código que accede a la base de datos están contenidos dentro de bloques try-catch. Todos los métodos definidos en las interfaces Connection, Statement y ResultSet, así como el método getConnection() de la clase DriverManager, lanzan excepciones de tipo java.sql.SQLException. Por lo tanto, todo el código que acceda a la base de datos o procese los resultados de una consulta debe estar dentro de una cláusula try-catch, o bien residir en un método que declare explícitamente el lanzamiento de excepciones de tipo SQLException.

La clase SQLException

La excepción SQLException posee características que la diferencian del resto de las excepciones en Java. Más que una excepción simple, funciona como una lista de excepciones encadenadas. Dado que pueden ocurrir múltiples problemas simultáneos en el servidor, la clase SQLException ha sido diseñada para almacenar información detallada de todos los errores surgidos en una operación.

Esta clase incluye el método getNextException(), que devuelve la siguiente excepción de la cadena o null si no existen más elementos. El siguiente patrón de código permite gestionar:

  • El código de error específico del fabricante de la base de datos.
  • El mensaje de error descriptivo.
  • La traza (stack trace) de todas las excepciones encadenadas.

La clase SQLWarning

La clase SQLWarning es una subclase de SQLException. Un SQLWarning se genera cuando ocurre un error no fatal en la base de datos. Al igual que las excepciones, estas se encadenan y se puede acceder al siguiente SQLWarning mediante el método getNextWarning().

A diferencia de las excepciones, los warnings no se lanzan automáticamente. Para acceder a ellos, es necesario emplear el método getWarnings(), definido en las interfaces:

  • Connection
  • Statement
  • ResultSet

Entradas relacionadas: