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

Могли бы вы объяснить назначение и использование аннотации @ControllerAdvice в Spring?

Компании, где спрашивали
SimbirsoftSimbirsoft

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

sobes.tech AI

Аннотация @ControllerAdvice в Spring используется для глобальной обработки исключений, настройки данных модели и перехвата запросов во всех контроллерах приложения. Это позволяет централизованно обрабатывать ошибки и применять общие настройки, не дублируя код в каждом контроллере.

Например, с помощью @ControllerAdvice можно определить метод, который будет обрабатывать исключения типа Exception во всех контроллерах:

@ControllerAdvice
public class GlobalExceptionHandler {

    @ExceptionHandler(Exception.class)
    public ResponseEntity<String> handleAllExceptions(Exception ex) {
        return new ResponseEntity<>("Произошла ошибка: " + ex.getMessage(), HttpStatus.INTERNAL_SERVER_ERROR);
    }
}

Таким образом, при возникновении исключения в любом контроллере, этот метод будет вызван автоматически, обеспечивая единообразную обработку ошибок.