美文网首页
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