Crear nuestra propia página de error

2048 vistas

Veamos un ejemplo de página de error que permite determinar los errores que pueden surgir:



html4strict
  1. <%@ page language="java" isErrorPage="true" %>
  2. <!DOCTYPE HTML PUBLIC "-//w3c//dtd html 4.0 transitional//en">
  3. <html>
  4. <head>
  5. <title>Página de error</title>
  6. </head>
  7. <body bgcolor="#FFFFFF">
  8. <div>¡Se ha producido un error!</div>
  9.  
  10. <h1>Atributo de consulta</h1>
  11. <div class="consultaAttributs">
  12. <%
  13.   java.util.Enumeration en= request.getAttributeNames();
  14.   while (en.hasMoreElements()) {
  15.     String name = (String) en.nextElement();
  16.     if(request.getAttribute(name) == null) {
  17.       %>
  18.       <div><%=name%>=null</div>
  19.       <%
  20.     } else {
  21.       %>
  22.       <div><%=name%>=<%=request.getAttribute(name).toString()%></div>
  23.       <%
  24.     }
  25.   }
  26. %>
  27. </div>
  28.  
  29. <div class="consultaParameters">
  30. <%
  31. en = request.getParameterNames();
  32. while (en.hasMoreElements()) {
  33.   String name = (String) en.nextElement();
  34.   if(request.getParameter(name) == null) {
  35.     %>
  36.     <div><%=name%>=null</div>
  37.     <%
  38.   } else {
  39.     %>
  40.     <div><%=name%>=<%=request.getParameter(name).toString()%></div>
  41.     <%
  42.   }
  43. }
  44. %>
  45. </div>
  46.  
  47.  
  48. <h1>Excepción</h1>
  49. <div>
  50. <%
  51. Throwable th = pageContext.getException();
  52. if(th != null) {
  53.   printRecursiveException(out,th);
  54. }
  55. %>
  56. </div>
  57.  
  58. <%!
  59. public void printRecursiveException(JspWriter out, Throwable th) throws java.io.IOException {
  60.   out.println("<div>" + th.getClass().getName() + ":" + th.getMessage() + "</div>");
  61.   StackTraceElement ste;
  62.   for(int x=0;x < th.getStackTrace().length;x++) {
  63.     out.println("<div>" + th.getStackTrace()[x].toString() + "</div>");
  64.   }
  65.  
  66.   Throwable parent = th.getCause();
  67.   if(parent != null) {
  68.     out.println("<div class=\"parentCause\">");
  69.     printRecursiveException(out,parent);
  70.     out.println("</div>");
  71.   }
  72. }
  73. %>
  74. </body>
  75. </html>