try{ result = proceedingJoinPoint.proceed(); type = 1; }catch (BusinessException e){ type = 0; throw new BusinessException(e.getMessage()); } catch (Throwable e){ type = 0; throw new BusinessException("服务端异常!"); } finally { saveLog(proceedingJoinPoint,type); }改进这段代码
时间: 2024-03-17 17:43:40 浏览: 100
spring boot如何使用AOP统一处理web请求
这段代码可以进行如下改进:
1. 将日志记录和异常处理分离,使代码更加清晰。
2. 将异常处理放在最后面,这样会更加高效,因为异常处理是比较耗时的。
3. 在异常处理中,应该尽量避免捕获 Throwable,这会捕获到所有的异常,包括一些不应该被捕获的异常。
改进后的代码如下:
```
try {
result = proceedingJoinPoint.proceed();
saveLog(proceedingJoinPoint, 1);
} catch (BusinessException e) {
saveLog(proceedingJoinPoint, 0);
throw e;
} finally {
saveLog(proceedingJoinPoint, 0);
}
```
在这段代码中,我们将异常处理放在最后面,并且捕获了 BusinessException 异常,其它异常将会被抛出。同时,我们将日志记录和异常处理分离,使代码更加清晰。
阅读全文