Spring 3 Controller异常处理程序实现问题
问题内容:
我希望实现一个“
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内部错误。
问题答案:
确保您的异常处理程序正在返回存在/映射到该处理程序的视图。