代码之家  ›  专栏  ›  技术社区  ›  raisercostin

如何配置spring HandlerExceptionResolver来处理jsp中抛出的NullPointerException?

  •  10
  • raisercostin  · 技术社区  · 16 年前

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

    此异常不是由HandlerExceptionResolver处理的,而是抛出到web容器(tomcat)并转换为 code 500 error .

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

    • Spring可以配置为处理控制器内部抛出的异常,但不能处理视图抛出的异常。
    • 当然,我可以解决NullPointerException,但我想设计一个解决方案,它将优雅地解决web应用程序上的任何可能问题,以便向用户显示用户友好的消息。
    2 回复  |  直到 16 年前
        1
  •  6
  •   MetroidFan2002    16 年前

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

        2
  •  1
  •   Steve B.    16 年前

    我还没有使用spring框架的这一特殊部分,但是文档说

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

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

    所以我可以想象,如果NullPointer扩展了RuntimeException,那么框架的设计就不是为了捕获它。是否存在无法在控制器中直接处理异常的原因?