我想在springMVC3中使用异常处理程序捕获一个错误。我注释了异常.i可以捕获throwable和任何异常。但是当我尝试使用Error.It没有捕获异常。任何想法,为什么它如此。下面的代码捕获异常
ExceptionHandler(InvalidDataException.class)
public ModelMap handleException(InvalidDataException ex) {
logger.debug("exception catched :" + ex);
return new ModelMap();
}
但是下面没有捕捉到。
@ExceptionHandler(Error.class)
public ModelMap handleException(Error ex) {
logger.debug("exception catched :" + ex);
return new ModelMap();
}
答案 0 :(得分:3)
第二个示例无效,因为您正在捕获Error,其中Throwable和不是 Exception。如果您将'@ExceptionHandler'和'handleException()'方法更改为'Exception','InvalidDataException'或任何其他感兴趣的异常,您会发现代码将起作用。
答案 1 :(得分:2)
你不应该处理错误。错误表明严重的JVM问题应该是不正确的。
参考文献:
http://download.oracle.com/javase/6/docs/api/java/lang/Error.html, When to catch java.lang.Error?
答案 2 :(得分:0)
即使我也面临同样的问题,我认为@ExceptionHandler只能处理异常而不是throwable和错误 请参阅链接:ExceptionHandler doesn't work with Throwable