Вопрос проверяет знание централизованной обработки ошибок и архитектуры REST-приложений.
Глобальная обработка исключений реализуется через @ControllerAdvice.
Внутри него объявляются методы с @ExceptionHandler.
Это позволяет централизовать логику обработки ошибок.
Контроллеры становятся чище.
Ответы клиенту становятся единообразными.
Глобальный exception handling — стандартная практика в Spring-приложениях.
@ControllerAdvice — это компонент Spring, перехватывающий исключения из всех контроллеров.
@RestControllerAdvice
public class GlobalExceptionHandler {
@ExceptionHandler(EntityNotFoundException.class)
public ResponseEntity<String> handleNotFound(EntityNotFoundException ex) {
return ResponseEntity.status(404).body(ex.getMessage());
}
@ExceptionHandler(Exception.class)
public ResponseEntity<String> handleGeneral(Exception ex) {
return ResponseEntity.status(500).body("Internal error");
}
}
единая точка обработки ошибок
повторное использование логики
чистые контроллеры
централизованное логирование
возврат кастомных DTO ошибок
маппинг исключений на HTTP-коды
интеграция с мониторингом
@ControllerAdvice — основной и рекомендуемый способ реализации глобального exception handling в Spring.