【问题标题】:Exception Handling Spring异常处理弹簧
【发布时间】:2015-01-26 05:52:17
【问题描述】:

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

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

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

现在我有以下问题。

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

【问题讨论】:

    标签: java spring exception dependency-injection aop


    【解决方案1】:

    看看 Spring 的异常处理工具:

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

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-07-02
        • 1970-01-01
        • 2018-04-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-06-02
        相关资源
        最近更新 更多