Обработка исключений в Spring MVC Framework

В Spring MVC существует интерфейс HandlerExceptionResolver (берется из пакета org.springframework.web.servlet). На практике он используется при работе с непредвиденными исключениями, которые возникают в процессе выполнения обработчиков. По дефолту DispatcherServlet регистрирует класс DefaultHandlerExceptionResolver (пакет org.springframework.web.servlet.mvc.support). Данный распознаватель выполняет обработку стандартных исключений Spring MVC, устанавливая при этом специальный код состояния ответа.

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

Таким образом, в общем случае мы можем описать обработку исключений так:

  1. Controller Based – методы для обработки исключения указываются в классе контроллера. Для этого данные методы помечаются аннотацией @ExceptionHandler.
  2. Global Exception Handler – глобальные исключения, для обработки которых в Spring используется аннотация @ControllerAdvice.
  3. HandlerExceptionResolver implementation – интерфейс HandlerExceptionResolver позволяет задавать глобальный обработчик исключений. На практике вы сможете использовать реализацию этого интерфейса при создании своих глобальных обработчиков исключений в программном приложении.

По материалам https://javastudy.ru/.