Sobes.tech
Junior — Middle
130

Comment la gestion des exceptions est-elle effectuée dans les contrôleurs annotés avec @Controller?

Réponse de l'IA

sobes.tech IA

В Spring MVC контроллерах, помеченных аннотацией @Controller, обработка исключений может осуществляться несколькими способами:

  • @ExceptionHandler — метод внутри контроллера или отдельного класса с аннотацией @ControllerAdvice, который перехватывает исключения определённого типа и возвращает ответ.

  • @ControllerAdvice — глобальный обработчик исключений для всех контроллеров, позволяет централизованно обрабатывать ошибки.

  • ResponseStatusException — выбрасывание исключения с аннотацией @ResponseStatus для автоматической установки HTTP статуса.

Пример использования @ExceptionHandler внутри контроллера:

@Controller
public class MyController {

    @GetMapping("/example")
    public String example() {
        if (true) {
            throw new IllegalArgumentException("Ошибка параметра");
        }
        return "view";
    }

    @ExceptionHandler(IllegalArgumentException.class)
    public ResponseEntity<String> handleIllegalArgument(IllegalArgumentException ex) {
        return ResponseEntity.badRequest().body(ex.getMessage());
    }
}

Таким образом, при возникновении исключения IllegalArgumentException метод handleIllegalArgument вернёт клиенту ответ с кодом 400 и сообщением ошибки.