Gestion des Exceptions
Spring permet de définir la gestion des exceptions via un ExceptionHandler, qu'il est possible de mettre :
- Dans un contrôleur
- Dans le ControllerAdvice pour une gestion centralisée.
L'annotation @ExeptionHandler peut être associée à une ou plusieurs exceptions.
ExceptionHandler
L'utilisation de ExceptioinHandler dans le ControllerAdvice permet de centraliser la gestion des exceptions :
@ControllerAdvice
public class MainAdvice {
@ExceptionHandler({TodoNotFoundException.class, NoSuchElementException.class})
public String handleTodoNotFoundException(RedirectAttributes attributes) {
InfoMessage msg = InfoMessage.error("Erreur", "La tâche demandée n'existe pas");
attributes.addFlashAttribute("msg", msg);
return "redirect:/";
}
...
}
Validation
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>