从jsp抛出NullPointerException,例如使用<% null.toString(); %>
此异常不由HandlerExceptionResolver处理,而是抛出到Web容器(tomcat)并转换为code 500 error
。
如何配置spring以在HandlerExceptionResolver中获取该错误?
详细说明:
答案 0 :(得分:6)
请参阅HandlerInterceptor界面。你会想要afterCompletion方法。然后,您可以拦截响应,然后设置适当的标头信息以重定向到容器配置的错误网页。你是对的,Spring没有这个功能,这必须由web.xml指定,它确定哪些代码映射到哪些页面。
答案 1 :(得分:1)
我没有使用Spring框架的这个特定部分,但文档说
“由对象实现的接口可以解析在处理程序映射或执行期间抛出的异常,在典型情况下是错误视图。实现者通常在应用程序上下文中注册为bean。
错误视图类似于错误页面JSP,但可以与任何类型的异常一起使用,包括任何已检查的异常,以及针对特定处理程序的可能细粒度映射。“
所以我想,鉴于NullPointer扩展了RuntimeException,框架并不是为了捕获它而设计的。有没有理由不能直接在控制器中处理异常?