Manejo de excepciones en JSP

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.
 

Publicación traducida automáticamente

Artículo escrito por ParthDutt y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *