Cette question est peut-être trop ambiguë, mais je recherche de l'aide ou des conseils sur la gestion des exceptions dans une application JavaServer Faces.Gestion des exceptions dans une application JSF
À l'heure actuelle, chaque fois que j'attrape une exception, je l'enregistre, puis lance une autre exception que j'ai créée, par exemple MyCustomException
. Cette exception personnalisée prend l'objet Throwable
qui a été intercepté et m'envoie la trace de la pile par courrier électronique pour que je sache qu'une exception s'est produite. Pour l'instant, cela semble fonctionner pour moi jusqu'à la notification d'une exception.
Cependant, le problème que j'ai est de savoir comment présenter à l'utilisateur une jolie page d'erreur qui leur permet de savoir que quelque chose s'est mal passé et que j'ai été informé de l'erreur. Faire quelques recherches, je suis tombé sur plusieurs articles qui montrent comment rediriger un utilisateur vers une autre page en utilisant quelque chose de semblable à ce qui suit:
FacesContext context = FacesContext.getCurrentInstance();
ExternalContext extContext = context.getExternalContext();
String url = extContext.encodeActionURL(extContext.getRequestContextPath() +
"/messages.faces");
extContext.redirect(url);
Mais cela semble être un peu à copier et coller au fond pour chaque pris l'exception, qui ne suit pas exactement le principe DRY. À la fin, je pense que ce que je voudrais faire est d'avoir un email envoyé à chaque fois qu'une exception se produit et ensuite être en mesure d'envoyer un message à une page d'erreur générique qui affiche ensuite le message à l'utilisateur.
Des idées ou des bonnes pratiques que je devrais suivre? Merci d'avance pour tout conseil que vous pouvez donner! Je suis perplexe.
Remarque: Si cela aide, j'utilise JSF 2.0 et Facelets.