Download Gestion de Errores - Comunidad de Madrid
Document related concepts
no text concepts found
Transcript
Mostrar página de error dependiendo del error producido:
Para poder controlar que página vamos a mostrar con determinados
errores debemos conocer primero el código del error a controlar, por ejemplo,
ListaValores lanza el error de que no ha encontrado registros con el código
1001.
Si lo que queremos es que un error nuestro sea controlado por una clase
propia de nuestra aplicación o mostrado en una pagina personalizada lo que
debemos hacer es lanzar este error usando el constructor de CargableException
que acepta como parametros una cadena y un número, este número sera el
código de error que luego deberemos indicar en nuestro fichero de
configuración.
Ejemplo:
try{
…
}catch(SQLException sqle){
throw new CargableException(“Mi error personalizado:
“+sqle.getMessage(), 501);
}
Una vez que conocemos el código de error a controlar hacemos unas
modificaciones en el fichero de configuración para controlar el error como
queramos, estas modificaciones pueden ser la siguientes:
-
-
-
Añadir una línea con la página que queremos que muestre el
controlador cuando se lanze este error:
aplicacion.codError[codigo_error].paginaError =
[nuestra_pagina_de_error]
Añadir una linea con la clase que queremos que gestione este error:
aplicacion.codError[codigo_error].claseError =
[nuestra_clase_de_error]. Esta clase debe implementar el interface
‘sistemas.framework.acciones.comunes.ErrorPersonalizado’
Añadir ambas lineas para que nuestro error sea gestionado por una
clase nuestra propia y se muestre en la página que nosotros
queramos.
Ejemplo de clase gestora de errores:
package sistemas.framework.acciones.comunes;
import java.io.*;
import java.util.*;
import javax.servlet.http.*;
import sistemas.framework.excepciones.*;
/**
* <p>Clase usada para mostrar errores en el caso de que el servlet se
le haya
* llamado desde Forms con la opcion GeneraLlamada.</p>
* <p>Copyright: Copyright (c) 2003</p>
* <p>Company: ICM</p>
* @author Soporte Técnico a Desarrollo
* @version 1.0
*/
public class MostrarErrorForms implements ErrorPersonalizado {
public MostrarErrorForms () {
}
public void muestraError (HttpServletResponse
response,HttpServletRequest request,
CargableException ce, String
nombrePagina) {
/*
Vamos a ignorar la pagina de error que nos envie, puesto que
solo necesitamos poner un alrt
*/
String paginaError = "<HTML><SCRIPT>alert(\"" +
ce.getMessage() +
"\");document.location.href=
'about:blank';</SCRIPT></HTML>";
sistemas.util.Trazas.impSistemas("Pagina ERROR: " +
paginaError);
try {
response.setContentType("text/html");
response.getOutputStream().print(paginaError);
} catch (IOException ex) {
}
}
public void muestraErrorExtendido (HttpServletResponse response
,HttpServletRequest request,
CargableException ce,
String nombrePagina,
Hashtable listaErrores) {
/*
Con FORMS no se muestra nunca el error de forma extendida
*/
muestraError(response,request, ce, nombrePagina);
}
}
Related documents