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 статусом.