Sobes.tech
Назад к вопросам
Junior — Middle
65

Каким образом реализовать обработку ошибок в приложениях, использующих Spring Web MVC?

Компании, где спрашивали
Северсталь-ИфокомСеверсталь-Ифоком

Ответ от нейросети

sobes.tech AI

В Spring Web MVC обработка ошибок реализуется с помощью аннотаций и специальных классов, которые позволяют централизованно перехватывать и обрабатывать исключения.

Основные способы:

  1. @ExceptionHandler — аннотация для методов в контроллере, которые обрабатывают конкретные исключения.
@Controller
public class MyController {
    @ExceptionHandler(ResourceNotFoundException.class)
    public ResponseEntity<String> handleNotFound(ResourceNotFoundException ex) {
        return ResponseEntity.status(HttpStatus.NOT_FOUND).body(ex.getMessage());
    }
}
  1. @ControllerAdvice — класс, который глобально обрабатывает исключения для всех контроллеров.
@ControllerAdvice
public class GlobalExceptionHandler {
    @ExceptionHandler(Exception.class)
    public ResponseEntity<String> handleAll(Exception ex) {
        return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("Ошибка сервера");
    }
}
  1. Использование ResponseStatusException для выбрасывания исключений с HTTP статусом.

Таким образом, обработка ошибок становится централизованной и удобной для поддержки.