Java自定义异常

这篇博客介绍了如何创建一个自定义异常类`CustomException`,它继承自`Exception`并包含一个错误码字段。同时,定义了一个枚举类型`ErrorCodeEnum`,包含了各种错误情况的代码和描述,如请求成功、业务处理失败、授权相关错误、系统错误等。这些错误码用于在系统中统一处理异常情况,并提供详细的错误信息。
摘要由CSDN通过智能技术生成

首先第一步写一个配置类继承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();
    }
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值