Sobes.tech
Junior — Middle
64

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

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

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

sobes.tech AI

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

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

Пример глобальной обработки ошибок:

@ControllerAdvice
public class GlobalExceptionHandler {

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

    @ExceptionHandler(Exception.class)
    public ResponseEntity<String> handleGeneric(Exception ex) {
        return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("Внутренняя ошибка сервера");
    }
}

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