package com.njzscloud.common.core.ex;


/**
 * 异常信息
 * <p>默认：</p>
 * <p>系统异常：SYS_EXP_MSG</p>
 * <p>客户端错误：CLI_ERR_MSG</p>
 * <p>系统错误：SYS_ERR_MSG</p>
 */
public final class ExceptionMsg {

    /**
     * 通用系统异常
     */
    public static final ExceptionMsg SYS_EXP_MSG = new ExceptionMsg(ExceptionType.SYS_EXP, 1111, "操作失败");

    /**
     * 通用客户端错误
     */
    public static final ExceptionMsg CLI_ERR_MSG = new ExceptionMsg(ExceptionType.CLI_ERR, 5555, "操作失败");

    /**
     * 通用系统错误
     */
    public static final ExceptionMsg SYS_ERR_MSG = new ExceptionMsg(ExceptionType.SYS_ERR, 9999, "系统错误");

    /**
     * 编号（0< code ≤9999）
     */
    public final int code;
    /**
     * 异常信息（应尽量简略）
     */
    public final String msg;
    /**
     * 异常类型 {@link ExceptionType}
     */
    public final ExceptionType type;

    /**
     * 创建异常信息
     *
     * @param type 异常类型 {@link ExceptionType}
     * @param code 异常编号（0< code ≤9999）
     * @param msg  异常信息（应尽量简略）
     */
    private ExceptionMsg(ExceptionType type, int code, String msg) {
        this.code = code;
        this.type = type;
        this.msg = msg;
    }
}
