分布式项目中的统一异常处理
1.自定义异常处理类并继承runtimeexception
2.自定义统一异常处理类处理各类自定义异常处理类(但是此处作为公共项目,不贴自动增强注解@ControllerAdvice,单独每个服务继承此公共异常处理类并做增强处理,比较灵活)
3.虽然各个服务都能实现本服务的统一异常处理,但是结合整个项目来看,为了方便快速找出项目中是哪个服务出现了异常,所以需要相应标示来区分
4.自定义封装异常返回对象其中包括异常编码对应不同服务的不同异常错误(500101,500102,600100等),异常信息
公用项目信息中
封装异常对象信息
@Setter
@Getter
public class CodeMsg {
private int code ;
private String msg ;
public CodeMsg(int code,String msg){
this.code=code;
this.msg=msg;
}
}
自定义业务逻辑异常处理类
@Getter
@Setter
public class BusinessException extends RuntimeException{
private CodeMsg codeMsg ;
public BusinessException(CodeMsg codeMsg){
this.codeMsg=codeMsg;
}
}
定义统一异常处理类
public class CommExceptionAdvice{
@ExceptionHandler