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

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了异常,那么全局的异常处理就捕获不到,也不能进行正常的数据返回

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值