Manejo de excepciones en JSP
¿Qué es la excepción en JSP?
Excepciones en JSP ocurren cuando hay un error en el código ya sea por parte del desarrollador o un error interno del sistema. El manejo de excepciones en JSP es el mismo que en Java donde gestionamos excepciones utilizando bloques Try Catch. A diferencia de Java, también hay excepciones en JSP cuando no hay ningún error en el código.
Tipos de excepciones en JSP
Las excepciones en JSP son de tres tipos:
- Excepción marcada
- Excepción en tiempo de ejecución
- Excepción de error
Excepciones marcadas
Normalmente, se trata de un error del usuario o de problemas que el desarrollador no detecta y se denominan excepciones comprobadas. Algunos ejemplos de excepciones comprobadas son:
- Excepción de archivo no encontrado: Esta es una excepción marcada (donde intenta encontrar un archivo cuando no se encuentra en el disco).
- Excepción de E/S: Esta también es una excepción marcada. Si se produce alguna excepción durante la lectura o escritura de un archivo, se genera la excepción IO.
- Excepción SQL:Esta también es una excepción marcada cuando el archivo está conectado con SQL base de datos, y hay un problema con la conectividad de la base de datos SQL, entonces se genera SQLException
Excepciones de tiempo de ejecución
Las excepciones de tiempo de ejecución son aquellas que el programador podría haber evitado. Se ignoran en el momento de la compilación. Algunos ejemplos de excepciones de tiempo de ejecución son:
- ArrayIndexOutOfBoundsExceptionArrayIndexOutOfBoundsException: Esta es una excepción de tiempo de ejecución cuando el tamaño de la matriz excede el elementos.
- excepción aritmética: Esto también es una excepción de tiempo de ejecución cuando hay operaciones matemáticas que no están permitidas en condiciones normales, por ejemplo, dividir un número entre 0 generará una excepción.
- Excepción de puntero nulo: Esta también es una excepción de tiempo de ejecución que se genera cuando una variable o un objeto es nulo cuando intentamos acceder al mismo. Esta es una excepción muy común.
Errores:
El problema surge debido al control del usuario o del programador. Si la pila se desborda, puede producirse un error. A continuación se enumeran algunos ejemplos de errores:
- Error: Este error es una subclase de throwable que indica problemas graves que una aplicación no puede detectar.
- Error de creación de instancias: Este error ocurre cuando intentamos crear una instancia de un objeto y no lo logra.
- Error interno: Este error ocurre cuando se produce un error desde JVM, es decir. Java Virtual Machine.
Excepciones de errores
Es una instancia de la clase throwable y se utiliza en páginas de error. Algunos métodos de la clase throwable son:
- Cadena pública getMessage() – devuelve el mensaje de la excepción.
- Lanzable públicogetCause() – devuelve la causa de la excepción
- printStackTrace público()– devuelve el seguimiento de la pila de la excepción.
Cómo manejar la excepción en JSP
A continuación se muestra un ejemplo de cómo manejar excepciones en JSP:
Excepción_ejemplo.jsp
<%@ page errorPage="guru_error.jsp" %> <%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Exception Guru JSP1</title> </head> <body> <% int num = 10; if (num == 10) { throw new RuntimeException("Error condition!!!"); } %> </body> </html>
Gurú_error.jsp
<%@ page isErrorPage="true" %> <%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Guru Exception Page</title> </head> <body> <p>Guru Exception has occurred</p> <% exception.printStackTrace(response.getWriter()); %> </body> </html>
Explicación del código:
Excepción_ejemplo.jsp
Línea de código 1: Aquí estamos configurando la página de error en guru_error.jsp, que se utilizará cuando se redirija el error.
Línea de código 15: Estamos tomando una variable num y configurándola en 10 y verificando una condición si num es 10 y luego lanzamos una excepción de tiempo de ejecución con el mensaje como condición de error.
Gurú_error.jsp
Línea de código 1: Aquí estamos configurando isErrorPageattribute en verdadero.
Línea de código 12: La excepción se generó en excepción_example.jsp usando el objeto throw y esa excepción se mostrará aquí ya que el atributo IsErrorPage está marcado como verdadero. Usando el objeto excepción (este es un objeto que permite que JSP acceda a los datos de la excepción), estamos intentando imprimir el seguimiento de la pila del error que ocurrió en excepción_example.jsp.
Cuando ejecuta el código anterior, obtiene el siguiente resultado:
Salida:
Se ha generado la excepción que se lanzó desde exception_example.jsp utilizando el objeto de lanzamiento de excepción de tiempo de ejecución y obtenemos el código anterior. También se llama a guru_error.jsp desde el cual se produjo la excepción Guru desde este archivo.
Resumen
- Las excepciones en JSP ocurren cuando hay un error en el código ya sea por parte del desarrollador o un error interno del sistema.
- Las excepciones en JSP son de 3 tipos: excepciones comprobadas, excepciones en tiempo de ejecución y excepciones de error.
- La excepción marcada normalmente es un error del usuario o los problemas que no son vistos por el desarrollador se denominan excepciones marcadas.
- Las excepciones de tiempo de ejecución son aquellas que el programador podría haber evitado. Se ignoran en el momento de la compilación.
- La excepción de error es una instancia de la clase arrojable y se usa en páginas de error.