Логотип YeaHub

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

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

Тренажёр

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

Обучение

Навыки

Задачи

Войти

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

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

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про Java: spring, exception handler, controller advice, rest error handling

Как централизованно обрабатывать исключения в REST-контроллерах?

Этот вопрос проверяет знание механизма глобальной обработки ошибок в Spring и умение использовать его для унифицированного API-ответа.

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

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

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

Основной механизм:

  • Аннотация @ControllerAdvice — регистрирует класс как обработчик ошибок на уровне всего приложения.

  • Метод с @ExceptionHandler — обрабатывает конкретные типы исключений.

Пример:

@ControllerAdvice
public class GlobalExceptionHandler {

    	@ExceptionHandler(EntityNotFoundException.class)
    	public ResponseEntity<String> handleNotFound(EntityNotFoundException ex) {
        	return ResponseEntity.status(HttpStatus.NOT_FOUND).body("Not found: " + ex.getMessage());
    	}
}

Дополнительно:

  • Можно возвращать кастомные DTO с кодом ошибки, сообщением и временем.

  • Поддерживается логирование и трассировка.

Почему это важно:

  • Позволяет избежать дублирования кода в контроллерах.

  • Обеспечивает единообразные ответы клиенту.

Вывод:
@ControllerAdvice и @ExceptionHandler позволяют гибко и централизованно обрабатывать ошибки во всех REST-контроллерах.

Уровень

  • Рейтинг:

    2

  • Сложность:

    7

Навыки

  • Java

    Java

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

#spring

#exception handler

#controller advice

#rest error handling

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