繁体   English   中英

Spring MVC中的嵌套异常处理

[英]Nested Exception handling in Spring MVC

我收到以下错误:

org.springframework.web.util.NestedServletException:请求处理失败; 嵌套异常是java.lang.NullPointerException

为了在控制器中处理这个问题,我使用了以下代码:

@ExceptionHandler(NestedServletException.class)
public ModelAndView handleServletErrors(){
    System.out.println("Servlet Exception is thrown");
    ModelAndView mv = new ModelAndView("error"); 
    mv.addObject("error", "Error encountered while processing reqeust.");
    return mv;
}

但是这并没有处理上面抛出的异常。 如果我使用NullPointerException类而不是NestedServletException ,它可以工作。 由于Spring在响应NullPointerException抛出异常,不应该由上面的代码处理吗?

引用@ExceptionHandler的文档:

用于处理特定处理程序类和/或处理程序方法中的异常的注释。

此注释将允许方法处理由处理程序方法引发的异常,即使用@RequestMapping注释的方法。 引用Spring引用

您可以使用@ExceptionHandler方法执行此@ExceptionHandler 在控制器中声明时,此类方法适用于该控制器(或其任何子类)的@RequestMapping方法引发的异常。 您还可以在@ControllerAdvice类中声明@ExceptionHandler方法,在这种情况下,它会处理来自许多控制器的@RequestMapping方法的异常。

由于处理程序抛出的异常是NullPointerException ,因此异常处理程序方法将处理该特定异常。 它不会处理Spring用来封装servlet异常的泛型NestedServletException

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM