Je souhaite utiliser un moyen générique pour gérer les codes d'erreur 5xx, disons spécifiquement le cas où la base de données est en panne dans toute mon application Spring. Je veux un joli json d'erreur au lieu d'une trace de pile.
Pour les contrôleurs, j'ai une @ControllerAdvice
classe pour les différentes exceptions et cela attrape également le cas où la base de données s'arrête au milieu de la demande. Mais ce n'est pas tout. Il se trouve que j'ai aussi une CorsFilter
extension personnalisée OncePerRequestFilter
et là, lorsque j'appelle, doFilter
je reçois le CannotGetJdbcConnectionException
et il ne sera pas géré par le @ControllerAdvice
. J'ai lu plusieurs choses en ligne qui m'ont rendu encore plus confus.
J'ai donc beaucoup de questions:
- Dois-je implémenter un filtre personnalisé? J'ai trouvé le
ExceptionTranslationFilter
mais cela ne gère queAuthenticationException
ouAccessDeniedException
. - J'ai pensé à implémenter la mienne
HandlerExceptionResolver
, mais cela m'a fait douter, je n'ai pas d'exception personnalisée à gérer, il doit y avoir un moyen plus évident que celui-ci. J'ai également essayé d'ajouter un try / catch et d'appeler une implémentation duHandlerExceptionResolver
(devrait être assez bon, mon exception n'a rien de spécial) mais cela ne renvoie rien dans la réponse, j'obtiens un statut 200 et un corps vide.
Y a-t-il un bon moyen de gérer cela? Merci