package org.qinan.safetyeval.domain.exception;

/**
 * 业务异常
 * <p>
 * 统一业务异常处理，替代原生 RuntimeException。
 * 包含错误码枚举，便于前端展示统一错误信息。
 * 定义在 Domain 层，供各层统一使用。
 * </p>
 *
 * @author safety-eval
 */
public class BizException extends RuntimeException {

    private final String code;

    public BizException(ErrorCode errorCode) {
        super(errorCode.getMessage());
        this.code = errorCode.getCode();
    }

    public BizException(ErrorCode errorCode, String message) {
        super(message);
        this.code = errorCode.getCode();
    }

    public BizException(ErrorCode errorCode, Throwable cause) {
        super(errorCode.getMessage(), cause);
        this.code = errorCode.getCode();
    }

    public BizException(String errorCode, String message) {
        super(message);
        this.code = errorCode;
    }

    public String getCode() {
        return code;
    }
}
