Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про Spring: controlleradvice, exception, handler

Для чего используется @ControllerAdvice?

Вопрос проверяет понимание глобальной обработки ошибок и принципов централизованного контроля поведения контроллеров.

Короткий ответ

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

Длинный ответ

@ControllerAdvice — ключевой инструмент для централизованной логики, связанной с web-слоем.

Определение

@ControllerAdvice — это специальный компонент Spring MVC, который применяется ко всем контроллерам и позволяет перехватывать исключения и настраивать общее поведение.

Основные сценарии использования

Перед перечислением важно понимать: цель @ControllerAdvice — убрать дублирование логики из контроллеров.

1) Глобальная обработка исключений

Самый частый сценарий.

  1. Что выносится

    • обработка RuntimeException

    • бизнес-исключения

    • ошибки валидации

  2. Пример идеи

@RestControllerAdvice
public class GlobalExceptionHandler {

    @ExceptionHandler(UserNotFoundException.class)
    public ResponseEntity<ApiError> handleNotFound() {
        // формирование ответа об ошибке
    }
}

2) Единый формат ошибок

  1. Все ошибки имеют одинаковую структуру

  2. Клиенту проще их обрабатывать

  3. Проще поддерживать API

3) Общие биндинги и настройки

  1. Общие @InitBinder

  2. Общие модели или преобразования

Ограничения

  1. Не заменяет бизнес-валидацию

  2. Не должен содержать сложную логику

  3. Работает только в web-контексте

Краткий вывод

@ControllerAdvice — это стандартный способ централизовать обработку ошибок и общее поведение контроллеров в Spring MVC.

Уровень

  • Рейтинг:

    5

  • Сложность:

    5

Навыки

  • Spring

    Spring

Ключевые слова

#controlleradvice

#exception

#handler

Подпишись на Java Developer в телеграм