Manejo de excepciones en una aplicación JSF

Esto puede ser una pregunta demasiado ambigua, pero estoy buscando ayuda o mejores prácticas para manejar excepciones en una aplicación JavaServer Faces.

En este momento, cada vez que capturo una excepción, la registro y luego lanzo otra excepción que creé, digamos MyCustomException. Esta excepción personalizada toma el Throwableobjeto que fue capturado y me envía por correo electrónico el seguimiento de la pila para que sepa que se ha producido una excepción. Por ahora, esto parece funcionar para mí en cuanto a ser notificado cuando ocurre una excepción.

Sin embargo, el problema que estoy teniendo es cómo presentarle al usuario una bonita página de error que le permite saber que algo salió mal y que he sido notificado del error. Haciendo algunas búsquedas, he encontrado varios artículos que muestran cómo redirigir a un usuario a otra página usando algo similar a lo siguiente:

FacesContext context = FacesContext.getCurrentInstance();
ExternalContext extContext = context.getExternalContext();

String url = extContext.encodeActionURL(extContext.getRequestContextPath() +
    "/messages.faces");

extContext.redirect(url);

Pero esto parece ser un poco básicamente para copiar y pegar para cada excepción capturada, que no sigue exactamente el principio DRY. Al final, creo que lo que me gustaría hacer es que me envíen un correo electrónico cada vez que ocurra una excepción y luego poder enviar un mensaje a una página de error genérico que luego muestre el mensaje al usuario.

¿Alguna idea o mejor práctica que deba seguir? Gracias de antemano por cualquier consejo que pueda dar! Estoy perplejo.

Nota: Si ayuda, estoy usando JSF 2.0 y Facelets.

Respuesta 1

Estas URL pueden ser útiles para usted:

http://weblogs.java.net/blog/edburns/archive/2009/09/03/dealing-gracefully-viewexpiredexception-jsf2

http://andyschwartz.wordpress.com/2009/07/31/whats-new-in-jsf-2/

http://download.oracle.com/docs/cd/E17802_01/j2ee/javaee/javaserverfaces/2.0/docs/api/javax/faces/context/ExceptionHandler.html

Básicamente, debe usar la nueva función en JSF2.0, ExceptionHandler. Este es un punto central para manejar excepciones inesperadas. Puede indicar qué página usa para cada tipo de excepción.

Respuesta: 2

Estoy trabajando en un programa de agrupación y tengo un conjunto de datos de dobles que necesito normalizar para asegurarme de que cada doble (variable) tenga la misma influencia. Me gustaría usar min-max ...

Estoy tratando de configurar el ejemplo simple de Spark REST como se describe aquí: http://sparkjava.com/documentation.html Cuando busco: http: // localhost: 4567 / hello me aparece este error: [qtp346024113-15] ...

Quiero acelerar algún código matlab que involucre un bucle. Una solución común es codificar el bucle en C y llamarlo desde matlab. Sin embargo, me preguntaba si puedo obtener beneficios similares al implementar el ...

Así que estoy pasando actividades e intenciones por todas partes en mi aplicación de Android para manejar los subprocesos (estoy seguro de que hay un mejor paradigma para esto, ya que mi código está comenzando a ser molestamente espagueti - ...