Spring3.0 如何统一处理自定义异常呢?

李伸 发布于 2010/12/13 03:09
阅读 2K+
收藏 1

求助啊。

现在的情况是,我们项目决定使用 Spring3.0,避开所有和具体程序有关的 .xml ,全部使用标注(annotation)。我现在在做全局异常处理。旧版 Spring 是通过 .xml 声明异常处理的 bean 来解决这个问题。现在要避开 xml 。

我查了好久的资料,现在已知可以给异常处理方法加上 @ExceptionHandler(XxxxException.class) 标注进行解决。但这要求此异常处理方法必须声明在异常发生的类之中。也就是说,如果我有四个 Controller 类,这四个类中要对某种异常统一处理;那么我就得做四个一摸一样的方法放在这四个类中。

请问谁能教教我如何进行全局异常处理啊?就像我让一个 Java 类实现 HandlerExceptionResolver 接口一样,能够最终处理全部程序各种位置抛出的未处理异常。HandlerExceptionResolver 规定的那个 resolveException 方法既不允许处理 Error ,也不允许主动抛出非运行时异常,关键是其返回值还必须得是 ModelAndView 对象……真是没办法用。我现在专门为它改动了全部程序的 ModelAndView 后缀,就是为了能在另外的 Controller 响应方法中处理。那么其它由 ModelAndView 转向 .jsp 的地方,就需要我做一个专门的 Controller 响应,手动转到相关页面,这实在是太不对了。

希望能得到指点。

加载中
0
人间五十年
人间五十年

我也考虑过你遇上的问题.

写一个处理基本异常的父类,其他的controller类继承它,不知道能不能解决问题.

返回顶部
顶部