001package run.iget.framework.common.exception;
002
003import lombok.Getter;
004import run.iget.framework.common.enums.BaseResultEnum;
005
006/**
007 * 代码千万行,注释第一行;注释不规范,迭代两行泪
008 * ----------------------------------------
009 * 业务异常
010 * ----------------------------------------
011 * author: 大周
012 * date: 2022/2/7 17:21
013 **/
014@Getter
015public class BusinessException extends RuntimeException {
016
017    /**
018     * 异常返回枚举对象
019     */
020    private BaseResultEnum resultEnum;
021
022    /**
023     * 带参构造方法
024     * @param msg 异常信息
025     */
026    public BusinessException(String msg) {
027        this(BaseResultEnum.ERROR_PARAM.getCode(), msg);
028    }
029
030    /**
031     * 带参构造方法
032     * @param msg 异常信息
033     */
034    public BusinessException(String code, String msg) {
035        this(BaseResultEnum.of(code, msg), null);
036    }
037
038    /**
039     * 带参构造方法
040     * @param resultEnum
041     */
042    public BusinessException(BaseResultEnum resultEnum) {
043        this(resultEnum, null);
044    }
045
046    /**
047     * 带参构造方法
048     * @param resultEnum -- 异常返回对象
049     * @param cause -- 异常根因
050     */
051    public BusinessException(BaseResultEnum resultEnum, Throwable cause) {
052        super(resultEnum.getDesc(), cause);
053        this.resultEnum = resultEnum;
054    }
055
056}