La gestion des exceptions dans un projet quelconque est une phase primordiale pour ne pas tomber sur des problèmes graves qui peuvent réduire la performance de votre application.
Spring Mvc, un framework qui nous permet d’avoir cette fonctionnalité par une simple configuration. Dans un premier temps, on va générer exprès une exception pour voir est ce que ce mécanisme marche bien ou pas. Après, je vais détailler la problématique de la gestion des exceptions ainsi que vous présenter une solution que je trouve correcte.
Pour gérer une exception, on va définir une méthode dans le contrôleur UserController.java :
l’annotation @ExceptionHandler est une implémentation permettant d’exécuter la méthode handleException si l’exception NullPointerException est levée. n’oubliez pas qu’on peut définir plusieurs exceptions dans le corps de l’annotation en ajoutant {} et en les séparant par une virgule.
on ajoute ce code dans la méthode postFormUser du contrôleur UserController.
Si on teste avec le formulaire :
on valide, et on aura comme résultat :
Maintenant, on lève un exception dans le controleur HomeController qui ne contient pas la méthode handleException.
on aura comme résultat :
A votre avis, pourquoi on a eu ce problème ?
la seule raison est que la méthode handleException est spécifique juste au contrôleur UserController et ne concernera pas le contrôleur HomeController.
Autre problème, Si on a codé des méthodes de gestion des exceptions de l’application et à un instant donné, on a une exception levée par la méthode qui traite une autre exception déjà levée. Comment peut-on résoudre ça ?
Dans notre prochain billet, on va parler d’un gestionnaire d’exception qui répond à toutes les exceptions levées par tous les contrôleurs ainsi que comment on peut gérer le problème de la deuxième question.
Commentaires sur: "Gestion des exceptions avec Spring Mvc" (1)
[…] On va continuer avec la gestion des exceptions et dans ce billet, on va résoudre le problème de la première question posée dans l’ancien billet. […]