Bonjour,
J'ai une application configurée avec plusieurs <error-page> pour intercepter les erreurs 404, 500 et les Throwable.
Cela fonctionne très bien sauf quand une exception est lancée dans un Filter.
J'en conclus donc que le tag <error-page> ne fonctionne que sur les servlets et jsp.
Ce que je ne comprends pas c'est pourquoi. Etant donné que je reçois quand même une erreur 500, elle devrait être interceptée.
Toujours est-t-il que j'ai trouvé un moyen de contourner le problème en mettant un try-catch entourant tout le code de la méthode doFilter() et en faisant un response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); dans le catch.
Je ne comprends vraiment pas pourquoi ça marche dans un cas et pas dans l'autre. Je serais intéressé par l'explication si quelq'un en a une.
Mais ma question principale est la suivante: est-ce le seul moyen de gérer ce cas ou y a-t-il une méthode plus "propre", agréable, efficace, que de mettre un try-catch dans tous les filtres de l'application?
Partager