-1

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

根据我的理解,这是我们需要做的。

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

现在我有以下问题。

  1. 除了不需要在我的代码中处理未经检查的异常之外,使用 AOP 处理未经检查的异常有什么好处?
  2. 将已检查异常转换为未检查异常有什么好处?
  3. 我是否应该继续将我在 struts 中的已检查异常转换为未检查异常,然后将 AOP 转换为 AOP?
  4. 在 Spring 3.0 中处理异常的更好方法是什么?
4

2 回答 2

4

看看 Spring 的异常处理工具:

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

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

于 2013-03-04T14:37:29.580 回答
1

@ExceptionHandler 值可以设置为异常类型数组。如果抛出的异常与列表中的类型之一匹配,则将调用使用匹配的 @ExceptionHandler 注释的方法。如果未设置注释值,则使用作为方法参数列出的异常类型。

Spring 在内部使用 AOP,您不需要使用它。它为您提供所有螺栓和螺母代码。

于 2015-01-25T21:52:17.143 回答