美文网首页
java AOP异常捕获导致全局异常捕获不到

java AOP异常捕获导致全局异常捕获不到

作者: 简单coder | 来源:发表于2020-06-06 16:08 被阅读0次

2020年6月4日13:32:42
如题, 笔者目前使用场景如下:
项目中使用自定义注解@loginterface处理登陆判断,在切面中处理,如图

//Controller层切点
    @Pointcut("execution (* com.qinyi.renhai.controller..*.*(..))")
    public  void controllerAspect() {
    }


    /**
     * 前置通知 用于拦截Controller层记录用户的操作
     *
     * @param joinPoint 切点
     */

    //配置controller环绕通知,使用在方法aspect()上注册的切入点
    @Around("controllerAspect()")
    public Object around(JoinPoint joinPoint) throws Throwable {
 //  我省略了大部分代码,这里是主要的代码
        //try {
            Object reObj =   ((ProceedingJoinPoint) joinPoint).proceed();
             ((ProceedingJoinPoint) joinPoint).proceed();
            long end = System.currentTimeMillis();
            if(logger.isInfoEnabled()){
                logger.info("around " + joinPoint + "\tUse time : " + (end - start) + " ms!");
            }
            System.out.println("==========结束执行controller环绕通知===============");
            return reObj;
//        } catch (Throwable e) {
//            long end = System.currentTimeMillis();
//            if(logger.isInfoEnabled()){
//                logger.info("around " + joinPoint + "\tUse time : " + (end - start) + " ms with exception : " + e.getMessage());
//            }
//        }
    }

这里要注意下:

  • 切面中捕获异常的话会导致全局异常捕获不生效,目前先注释掉切面捕获异常. 意思是这里不要加try catch, 如果catch了异常,那么全局的异常处理就捕获不到,也不能进行正常的数据返回

相关文章

网友评论

      本文标题:java AOP异常捕获导致全局异常捕获不到

      本文链接:https://www.haomeiwen.com/subject/stygzhtx.html