/*
 * 文 件 名:  CustomException
 * 版    权:
 * 描    述:  <描述>
 * 修 改 人:  RedName
 * 修改时间:  2022/8/5
 * 跟踪单号:  <跟踪单号>
 * 修改单号:  <修改单号>
 * 修改内容:  <修改内容>
 */
package com.supervision.exception;

import lombok.extern.slf4j.Slf4j;
import org.springframework.http.HttpStatus;

/**
 * <功能详细描述>
 * 自定义异常
 *
 * @author ljt
 * @version [版本号, 2022/8/5]
 * @see [相关类/方法]
 * @since [产品/模块版本]
 */
@Slf4j
public class BusinessException extends RuntimeException {
    /**
     * 异常编码
     */
    private final Integer code;

    /**
     * 异常信息
     */
    private final String message;

    public BusinessException(Throwable cause) {
        super(cause);
        this.code = HttpStatus.INTERNAL_SERVER_ERROR.value();
        this.message = null;

    }

    public BusinessException(Throwable cause, String message) {
        super(cause);
        this.code = HttpStatus.INTERNAL_SERVER_ERROR.value();
        this.message = message;

    }

    public BusinessException(String message) {
        this.code = HttpStatus.INTERNAL_SERVER_ERROR.value();
        this.message = message;
    }

    public BusinessException(String message, Integer code) {
        this.message = message;
        this.code = code;
    }

    public BusinessException(String message, Throwable e) {
        super(message, e);
        log.error(message, e);
        this.code = HttpStatus.INTERNAL_SERVER_ERROR.value();
        this.message = message;
    }

    @Override
    public String getMessage() {
        return message;
    }

    public Integer getCode() {
        return code;
    }
}
