![](/img/trans.png)
[英]@ExceptionHandler doesn't catch exceptions being thrown from Spring Formatters
[英]@ExceptionHandler doesn't handle the thrown exceptions
我的控制器中有一个方法可以处理应用程序抛出的异常。 所以我有一个像这样的方法。
@Controller
public class ExceptionController {
@RequestMapping(value="/error")
@ExceptionHandler(value={Exception.class, NullPointerException.class})
public String showError(Exception e, Model model){
return "tiles:error";
}
}
并尝试我,如果它工作,我在另一个方法控制器中的另一个方法中抛出NullPointerException:
boolean a = true;
if(a){
throw new NullPointerException();
}
抛出异常后,它会在JSP中打印,但它不会抛出我的showError()方法(我在那里设置了一个断点,它永远不会进入)。 showError()方法将捕获异常并根据异常类型显示不同的错误页面(尽管现在它总是显示相同的错误页面)。 如果我转到url / error它会显示错误页面,因此showError()方法是正常的。
我正在使用Spring 3。
可能是什么问题?
谢谢。
如果查看日志,您可能会看到:
java.lang.IllegalStateException
:@ExceptionHandler
方法的不支持的参数[org.springframework.ui.Model
]
换句话说, @ExceptionHandler
方法声明Model
参数(请参阅docs )。
删除该参数(无论如何都不使用),它应该按预期工作。
如果要全局处理异常(在控制器之外),则可以使用@ControllerAdvice带注释的类,在该类中放置@ExceptionHandler带注释的方法。
有关示例,请参阅http://spring.io/blog/2013/11/01/exception-handling-in-spring-mvc 。 并且http://blog.codeleak.pl/2013/11/controlleradvice-improvements-in-spring.html对于在春季4进行的改进。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.