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

Какие подходы и средства предоставляются в Spring MVC для обработки исключительных ситуаций и ошибок?

Компании, где спрашивали
Технодиасофт

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

sobes.tech AI

В Spring MVC для обработки исключений и ошибок предоставляются несколько подходов:

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

  2. @ControllerAdvice — класс, который глобально обрабатывает исключения для всех контроллеров приложения. Внутри него можно использовать методы с @ExceptionHandler.

  3. ResponseStatusException — исключение, которое можно выбросить с указанием HTTP-статуса, чтобы вернуть нужный код ошибки клиенту.

  4. HandlerExceptionResolver — интерфейс для более тонкой настройки обработки исключений.

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

@ControllerAdvice
public class GlobalExceptionHandler {

    @ExceptionHandler(ResourceNotFoundException.class)
    public ResponseEntity<String> handleNotFound(ResourceNotFoundException ex) {
        return new ResponseEntity<>(ex.getMessage(), HttpStatus.NOT_FOUND);
    }

    @ExceptionHandler(Exception.class)
    public ResponseEntity<String> handleGeneric(Exception ex) {
        return new ResponseEntity<>("Internal server error", HttpStatus.INTERNAL_SERVER_ERROR);
    }
}

Таким образом, Spring MVC предоставляет гибкие средства для централизованной и локальной обработки ошибок и исключений.