Comment gérer correctement les exceptions dans une application JSP / Servlet?
Comment avez-vous gérer correctement les erreurs rencontrées dans une servlet? Maintenant, l'application que j'ai hérité (utilise seulement les simples JSP/Servlet) est une super-classe appelée Controller
qui s'étend HttpServlet
et tous les autres servlets étendre. Dans ce Controller
classe est un try et catch bloc comme suit:
try {
//execute doPost or doGet here
} catch (Exception e) {
//show a generic error page
}
Est-ce la bonne façon de le faire? Il semble maladroit et ne semble pas toujours fonctionner. Je ne suis qu'un stagiaire donc je n'ai pas beaucoup d'expérience avec cette. Tous les conseils? Je suis en train de faire l'app robuste..
source d'informationauteur Damian Wells
Vous devez vous connecter pour publier un commentaire.
Le standard chose à faire est d'avoir votre Servlet
doXxx()
méthode (par exemple.doGet()
doPost()
etc.) jetez unServletException
et permettre le conteneur à attraper et à manipuler. Vous pouvez spécifier une page d'erreur personnalisée pour être montré dans lesWEB-INF/web.xml
à l'aide de la<error-page>
tag:Si on finit par attraper une
Exception
vous ne pouvez pas gérer de façon élégante, juste l'emballer dans unServletException
comme ceci:Ou vous pouvez intercepter toutes vos exceptions à l'aide d'une servlet:
Puis dans la servlet vous pouvez gérer l'exception, comme cette
Il y a quelques meilleures pratiques lorsqu'il s'agit d'exceptions. Généralement, vous pouvez le gérer, de le laisser bouillonner(pour décochée exceptions), le journal, ou de l'envelopper.
Vous devriez éviter d'attraper et de lancer d'exception, au lieu de catch le plus exception spécifique, ou créer votre propre type d'exception et envelopper l'exception en cours.
Heres une grande ressource pour l'utiliser comme "ne pas faire" en termes d'exceptions:
http://today.java.net/article/2006/04/04/exception-handling-antipatterns
En JSP, vous pouvez utiliser jstl bibliothèque de base
1) Importation tablib sur le dessus de fichier JSP
2) l'utilisation de la balise