首先第一步写一个配置类继承Exception代码如下
/**
* 自定义异常
*/
public class CustomException extends Exception {
private int code;
public CustomException(ErrorCodeEnum errorCodeEnum) {
super(errorCodeEnum.getMsg());
this.code = errorCodeEnum.getCode();
}
public int getCode() {
return code;
}
}
/**
* 错误码
*/
public enum ErrorCodeEnum {
/**
* 请求成功
*/
RESULT_SUCCESS(0, "请求成功"),
/**
* 业务处理失败
*/
BUSINESS_FAIL(1, "业务处理失败"),
UNAUTHORIZED(401, "未经授权的请求"),
FORBIDDEN(400, "授权失败"),
INVALID_TOKEN(402, "无效的token"),
// 系统级错误代码
SYSTEM_ERROR(100001, "系统错误"),
SERVICE_UNAVAILABLE(10002, "服务暂停"),
REMOTE_SERVICE_ERROR(10003, "远程服务错误"),
IP_LIMIT(10004, "IP限制不能请求该资源"),
PERMISSION_DENIED(10005, "该资源需要拥有授权"),
MISSING_REQUIRED_ARGUMENTS(10006, "缺少必选参数,请参考API文档"),
INVALID_ARGUMENTS(10007, "无效的参数"),
SYSTEM_BUSY(10008, "系统繁忙,请稍后重试"),
RPC_ERROR(10009, "RPC错误"),
ILLEGAL_REQUEST(10010, "非法请求"),
INVALID_USER(10011, "不合法的用户"),
MESSAGE_ERROR(10012, "消息处理异常"),
ACCESSTOKEN_INVALID(10013, "登录信息已过期,请重新登录"),
MISMATCHING(10014, "账号和密码不匹配"),
USER_NON_EXISTENT(10015, "该用户不存在"),
USERNAME_EXISTENT(10016, "该账号已存在"),
TAG_NAME_EXISTENT(10017, "该标签已存在"),
URL_NOT_EXISTS(10018, "文件url不存在"),
PASSWORD_ERROR(10019, "旧密码错误,请重新输入"),
HAVE_SERIALNUMBER(10028, "该序号已存在"),
CONFIG_UPDATE_FAILED(10029, "配置表更新失败"),
AUTHORITY_NAME_EXISTENT(20000, "权限名已存在"),
ROLE_NAME_EXISTENT(20001, "角色名已存在"),
ID_CODE_EXISTENT(20002, "权限码已存在"),
NO_AUTHORITY(20003, "没有相关权限"),
AUTHORITY_DONT_DELETE(20004, "权限被使用,不允许删除"),
NICKNAME_EXISTENT(20011, "该账户名已存在"),
LOGIN_ERROR(20012, "异常登录"),
#ES的错误
CHUNK_EXISTS(50000, "分片已存在"),
CHUNK_NOT_EXISTS(50001, "分片不存在"),
FILE_NOT_EXISTS(50002, "文件不存在"),
CHUNK_UPLOAD_ERROR(50003, "分片上传错误"),
FILE_UPLOAD_ERROR(50004, "文件上传错误"),
CHUNK_MERGE_FAIL(50005, "分片合并失败"),
UPLOAD_FAIL(50006, "上传失败"),
UPLOADING(50007, "上传中..."),
DOWNLOAD_FAIL(50008, "下载失败"),
GENERATE_UPLOAD_ID_FAIL(50009, "生成UPLOADID失败"),
UNZIP_FAIL(50010, "解压失败"),
EXCEL_DOWNLOAD_FAIL(60000, "导出Excel失败"),
EXCEL_DATA_EMPTY(60001, "数据为空,无法导出Excel");
private Integer code;
private String msg;
private ErrorCodeEnum(Integer code, String msg) {
this.code = code;
this.msg = msg;
}
public Integer getCode() {
return code;
}
public void setCode(Integer code) {
this.code = code;
}
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
/**
* 通过code返回对应的错误信息
*
* @param code
* @return
*/
public static String getMsg(Integer code) {
for (ErrorCodeEnum apiCodeEnum : values()) {
if (code.equals(apiCodeEnum.getCode())) {
return apiCodeEnum.getMsg();
}
}
return BUSINESS_FAIL.getMsg();
}
}