7 java exception-handling spring-mvc
我希望实现一个"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();
}
}
Run Code Online (Sandbox Code Playgroud)
我在调试日志中看到要求处理异常的三个默认异常处理程序,但没有做任何事情,我看到"DispatcherServlet - 无法完成请求".其次是用户显示堆栈跟踪和500内部错误.
确保您的Exception处理程序返回一个存在/映射到处理程序的视图.