自定义异常类

//异常类

public class CrmException extends RuntimeException {

  //自定义枚举类属性
  private CrmExceptionEnum exceptionEnum;

  //带参的构造方法将枚举类传入

  public CrmException(CrmExceptionEnum exceptionEnum) {

  super(exceptionEnum.getMess());//将异常信息放在堆栈信息中
  this.exceptionEnum = exceptionEnum;
  }

  public CrmExceptionEnum getExceptionEnum() {
  return exceptionEnum;
  }

  public void setExceptionEnum(CrmExceptionEnum exceptionEnum) {
  this.exceptionEnum = exceptionEnum;
  }
}

//枚举类

public enum CrmExceptionEnum {

  LOGIN_ACCOUNT_ERROR("001","用户名或密码错误"),
  LOGIN_ACCOUNT_EXPIRE("001","账户已失效"),
  LOGIN_ACCOUNT_FORBID("001","账户被禁用"),
  LOGIN_ACCOUNT_IP("001","不允许的IP");

  private String code;//业务状态码 001:用户登录 002:交易模块

  private String mess;

  CrmExceptionEnum(String code, String mess) {
  this.code = code;
  this.mess = mess;
  }

  public String getCode() {
  return code;
  }

  public void setCode(String code) {
  this.code = code;
  }

  public String getMess() {
  return mess;
  }

  public void setMess(String mess) {
  this.mess = mess;
  }
}

//测试自定义异常
@Test
public void test04(){
  // System.out.println(CrmExceptionEnum.LOGIN_ACCOUNT_ERROR.getMess());
  try{
    int a = 0;
    if(a == 0){
    throw new CrmException(CrmExceptionEnum.LOGIN_ACCOUNT_ERROR);
    }
  }catch (Exception e){
    System.out.println(e.getMessage());
  }

}

posted @ 2021-03-06 21:09  HHello-World  阅读(138)  评论(0)    收藏  举报