为什么异常处理程序没有在spring mvc中捕获错误

时间:2011-11-18 14:53:02

标签: spring

我想在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();

}

3 个答案:

答案 0 :(得分:3)

第二个示例无效,因为您正在捕获Error,其中Throwable不是 Exception。如果您将'@ExceptionHandler'和'handleException()'方法更改为'Exception','InvalidDataException'或任何其他感兴趣的异常,您会发现代码将起作用。

答案 1 :(得分:2)

你不应该处理错误。错误表明严重的JVM问题应该是不正确的。

参考文献:

http://download.oracle.com/javase/6/docs/api/java/lang/Error.htmlWhen to catch java.lang.Error?

答案 2 :(得分:0)

即使我也面临同样的问题,我认为@ExceptionHandler只能处理异常而不是throwable和错误 请参阅链接:ExceptionHandler doesn't work with Throwable