Каким образом осуществляется обработка исключений в контроллерах, помеченных аннотацией @Controller?
Answer from AI
sobes.tech AI
В 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 и сообщением ошибки.