2013-03-04 165 views
-1

我们正在将我们的应用程序从Struts 1.2转换为Springs 3.0。 因此,我们正在修改Struts 2代码中的异常处理。异常处理弹簧

根据我的未发现,这是我们需要做的。

  1. @ExceptionHandler只能在 Springs的Controller层中使用。
  2. 我们可以使用AOP来处理未经检查的异常。
  3. 在Struts中检查异常将保持原样,并且可以 转换为unchecked异常

现在我以下的问题。

  1. 请告诉我使用AOP处理unchecked异常 除了未经检查的异常不必在我 代码handelled的好处?
  2. 将检查的异常转换为未检查的异常的好处是什么?
  3. 我应该继续并将我在struts中检查的异常转换为 未经检查的异常和我们的AOP?
  4. 什么是更好的方法来处理Spring 3.0中的异常 ?

回答

4

看一看Spring的设施异常处理:

http://static.springsource.org/spring/docs/3.1.x/spring-framework-reference/html/mvc.html#mvc-exceptionhandlers

的想法是类似你的方法使用AOP,但需要少了很多配置。基本上,你注册一个处理程序来处理你的代码抛出的任何未经检查的异常。这使您可以通过声明是否引发异常来测试代码,并将该逻辑从处理中解耦出来并从异常中恢复。

+0

感谢您的回答 – Manish 2013-03-06 05:28:13

+0

帮助?如何投票或接受? – 2013-03-06 13:48:11

+0

有一点,所以我投了赞成票:)等待更多评论 – Manish 2013-03-06 16:41:05

1

@ExceptionHandler值可以设置为Exception类型的数组。如果引发的异常与列表中的某个类型匹配,则将调用使用匹配的@ExceptionHandler注释的方法。如果未设置注释值,则使用列为方法参数的异常类型。

Spring在内部使用AOP,您无需使用它。它给你所有的螺栓和螺母代码。