【问题标题】:How to configure spring HandlerExceptionResolver to handle NullPointerException thrown in jsp?如何配置spring HandlerExceptionResolver来处理jsp中抛出的NullPointerException?
【发布时间】:2010-09-16 19:48:52
【问题描述】:

从 jsp 抛出 NullPointerException 例如使用 <% null.toString(); %>

这个异常不被HandlerExceptionResolver处理,而是被抛出到web容器(tomcat)并转化为code 500 error

如何配置 spring 以在我的 HandlerExceptionResolver 中获取该错误?

详情:

  • Spring 可以配置为处理控制器内部抛出的异常,而不是视图抛出的异常。
  • 当然,我可以解决 NullPointerException,但我想设计一个解决方案,以优雅地解决 Web 应用程序上的任何可能问题,以便向用户显示用户友好的消息。

【问题讨论】:

    标签: spring jsp exception-handling


    【解决方案1】:

    请参阅HandlerInterceptor 接口。您将需要 afterCompletion 方法。然后,您可以拦截响应,然后设置适当的标头信息以重定向到容器配置的错误网页。你说得对,Spring 没有这个功能,这必须由 web.xml 指定,它决定哪些代码映射到哪些页面。

    【讨论】:

      【解决方案2】:

      我没有使用过这个特定的 spring 框架,但是文档说

      “由对象实现的接口,它可以解决处理程序映射或执行期间抛出的异常,在典型情况下是错误视图。实现者通常在应用程序上下文中注册为 bean。

      错误视图类似于错误页面 JSP,但可以与任何类型的异常一起使用,包括任何已检查的异常,并具有针对特定处理程序的潜在细粒度映射。”

      所以我想,鉴于 NullPointer 扩展了 RuntimeException,框架并非旨在捕捉它。是否有原因无法直接在控制器中处理异常?

      【讨论】:

      • @Steve_B 这里的问题是在视图处理过程中出现错误——控制器已经退出了。
      猜你喜欢
      • 1970-01-01
      • 2023-04-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-10
      • 2018-11-12
      • 1970-01-01
      相关资源
      最近更新 更多