Java Server Pages declara 9 objetos implícitos, siendo el objeto de excepción uno de ellos. Es un objeto de la clase java.lang.Throwable y se usa para imprimir excepciones. Sin embargo, solo se puede utilizar en páginas de error.
Hay dos formas de manejar las excepciones en JSP. Están:
- Por los atributos errorPage e isErrorPage de la directiva de página
- Por el elemento <error-page> en el archivo web.xml
Manejo de excepciones usando atributos de directiva de página
La directiva de página en JSP proporciona dos atributos para usar en el manejo de excepciones. Ellos son:
- errorPage : se utiliza para indicar qué página se mostrará cuando se produzca una excepción.
Sintaxis:
<%@page errorPage="url of the error page"%>
- isErrorPage : se utiliza para marcar una página como una página de error donde se muestran las excepciones.
Sintaxis:
<%@page isErrorPage="true"%>
Para manejar las excepciones utilizando las directivas de página antes mencionadas, es importante tener una página jsp para ejecutar el código normal, que es propenso a las excepciones. Además, se debe crear una página de error separada, que mostrará la excepción. En caso de que la excepción ocurra en la página con el código propenso a la excepción, el control navegará a la página de error que mostrará la excepción.
El siguiente es un ejemplo que ilustra el manejo de excepciones usando directivas de página:
índice.html
HTML
<html> <head> <body> <form action="a.jsp"> Number1:<input type="text" name="first" > Number2:<input type="text" name="second" > <input type="submit" value="divide"> </form> </body> </html>
A.jsp
Java
// JSP code to divide two numbers <% @page errorPage = "error.jsp" %> < % String num1 = request.getParameter("first"); String num2 = request.getParameter("second"); // extracting numbers from request int x = Integer.parseInt(num1); int y = Integer.parseInt(num2); int z = x / y; // dividing the numbers out.print("division of numbers is: " + z); // result % >
error.jsp
Java
// JSP code for error page, which displays the exception <% @page isErrorPage = "true" %> <h1> Exception caught</ h1> The exception is : <%= exception %> // displaying the exception
Salida :
index.html
error.jsp
Manejo de excepciones usando el elemento de página de error En el archivo web.xml
Esta es otra forma de especificar la página de error para cada elemento, pero en lugar de usar la directiva errorPage, la página de error para cada página se puede especificar en el archivo web.xml, usando el elemento <error-page> . La sintaxis es la siguiente:
HTML
<web-app> <error-page> <exception-type>Type of Exception</exception-type> <location>Error page url</location> </error-page> </web-app>
El siguiente ejemplo ilustra el uso de esta técnica para manejar excepciones:
índice.html
HTML
<html> <head> <body> <form action="a.jsp"> Number1:<input type="text" name="first" > Number2:<input type="text" name="second" > <input type="submit" value="divide"> </form> </body> </html>
a.jsp
Java
// JSP code to divide two numbers < % String num1 = request.getParameter("first"); String num2 = request.getParameter("second"); // extracting the numbers int x = Integer.parseInt(num1); int y = Integer.parseInt(num2); int z = x / y; // dividing out.print("division of numbers is: " + z); // result % >
error.jsp
Java
// JSP code for error page, which displays the exception <%@ page isErrorPage="true" %> <h1>Exception caught</h1> // displaying the exception The exception is: <%= exception %>
web.xml
HTML
<web-app> <error-page> <exception-type>java.lang.Exception</exception-type> <location>/error.jsp</location> </error-page> </web-app>
La salida, en este caso, es similar a la del anterior.