Я надеялся реализовать один «ExceptionController» для обработки исключений, которые вызываются при выполнении методов других моих контроллеров. Я не указал никакой HandlerExceptionResolver в контексте моего приложения, поэтому в соответствии с документацией API должен быть запущен AnnotationMethodHandlerExceptionResolver. Я подтвердил это как таковой в источнике. Так почему же не работает следующее?
@Controller
public class ExceptionController {
@ExceptionHandler(NullPointerException.class)
public ModelAndView handleNullPointerException(NullPointerException ex) {
// Do some stuff
log.error(logging stuff)
return myModelAndView;
}
}
@Controller
public class AnotherController {
@RequestMapping(value="/nullpointerpath")
public String throwNullPointer() {
throw new NullPointerException();
}
}
Я вижу в журналах отладки, что три обработчика исключений по умолчанию запрашиваются для обработки исключения, но ничего не делается, и я вижу "DispatcherServlet - Не удалось завершить запрос". За ним следует отображение трассировки стека и внутренней ошибки 500.