【问题标题】:Why exception handler is not catching error in Spring MVC为什么异常处理程序没有在 Spring MVC 中捕获错误
【发布时间】:2011-11-18 14:53:01
【问题描述】:

我想使用异常处理程序捕获 springMVC3 中的错误。我注释了异常。我可以捕获 throwable 和任何异常。但是当我尝试使用错误时,它没有捕获异常。知道为什么会这样吗?下面的代码捕获异常

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();

}

【问题讨论】:

标签: spring


【解决方案1】:

第二个示例不起作用,因为您正在捕获 Error,它扩展了 Throwablenot Exception。您会发现,如果您将 '@ExceptionHandler' 和 'handleException()' 方法更改为 'Exception'、'InvalidDataException' 或任何其他感兴趣的exception,代码将起作用。

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2018-10-15
      • 2012-01-01
      • 2020-08-18
      • 2013-01-27
      • 2018-03-20
      • 1970-01-01
      • 1970-01-01
      • 2011-08-17
      • 2011-10-08
      相关资源
      最近更新 更多