当前位置:  开发笔记 > 编程语言 > 正文

@AfterThrowing无法按预期工作

如何解决《@AfterThrowing无法按预期工作》经验,为你挑选了0个好方法。

我想使用AOP拦截服务层中抛出的所有运行时异常,并重新抛出域异常.

@Aspect
@Component
public class ExceptionWrapperInterceptor {

    @Pointcut("within(*.service.*)")
    public void onlyServiceClasses() {}

    @AfterThrowing(pointcut = "onlyServiceClasses()", throwing = "ex")
    public void intercept(DataAccessException ex) throws Exception {
        //throw DatabaseException
    }

    @AfterThrowing(pointcut = "onlyServiceClasses()", throwing = "ex")
    public void intercept(RuntimeException ex) throws Exception {
        //throw ServiceException
    }

}

这里的问题是,使用DataAccessException的子类,运行时执行错误的方法.有一个优雅的解决方案吗?

春季版:4.2.4.RELEASE

PS一个通用的方法(从其他问题中读取)有很多实例对我来说不优雅;-)

谢谢弗朗切斯科

推荐阅读
喜生-Da
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有