当前位置 : 主页 > 编程语言 > c++ >

ContrallerAOP规范

来源:互联网 收集:自由互联 发布时间:2021-07-03
gistfile1.txt AOP代码,主要就是打印日志和捕获异常,异常要区分已知异常和未知异常,其中未知的异常是我们重点关注的,可以做一些邮件通知啥的,已知异常可以再细分一下,可以不
gistfile1.txt
AOP代码,主要就是打印日志和捕获异常,异常要区分已知异常和未知异常,其中未知的异常是我们重点关注的,可以做一些邮件通知啥的,已知异常可以再细分一下,可以不同的异常返回不同的返回码:

public class ControllerAOP {
  private static final Logger logger = LoggerFactory.getLogger(ControllerAOP.class);
  public Object handlerControllerMethod(ProceedingJoinPoint pjp) {
    long startTime = System.currentTimeMillis();
    ResultBean
  result;
    try {
      result = (ResultBean
 ) pjp.proceed();
      logger.info(pjp.getSignature() + "use time:" + (System.currentTimeMillis() - startTime));
    } catch (Throwable e) {
      result = handlerException(pjp, e);
    }
    return result;
  }
  private ResultBean
  handlerException(ProceedingJoinPoint pjp, Throwable e) {
    ResultBean
  result = new ResultBean();
    // 已知异常
    if (e instanceof CheckException) {
      result.setMsg(e.getLocalizedMessage());
      result.setCode(ResultBean.FAIL);
    } else {
      logger.error(pjp.getSignature() + " error ", e);
      result.setMsg(e.toString());
      result.setCode(ResultBean.FAIL);
     // 未知异常是应该重点关注的,这里可以做其他操作,如通知邮件,单独写到某个文件等等。
    }
    return result;
  }
}



 

 
  
  
  
网友评论