Blog des développeurs et des administrateurs

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 :

méthode qui répond à l'exception

méthode qui répond à l’exception

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.

emplacement du fichier error dans le dossier jsp

emplacement du fichier error dans le dossier jsp

on ajoute ce code dans la méthode postFormUser du contrôleur UserController.

lever une exception pour tester l'annotation

lever une exception pour tester l’annotation

Si on teste avec le formulaire :

le formulaire addForm

le formulaire addForm

on valide, et on aura comme résultat :

message de la sortie

message de la sortie

Maintenant, on lève un exception dans le controleur HomeController qui ne contient pas la méthode handleException.

le controleur HomeController.java

le controleur HomeController.java

on aura comme résultat :

exception générée

exception générée

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)

  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. […]

Laisser un commentaire