package com.pig4cloud.pig.common.core.exception;


import com.pig4cloud.pig.common.core.util.MsgUtils;
import lombok.NoArgsConstructor;

import java.io.Serial;

/**
 * @author: lwh
 * @date: 2025-07-28
 * @description: 业务异常类
 */
@NoArgsConstructor
public class BusinessException extends CheckedException {

	@Serial
	private static final long serialVersionUID = 1L;

	/**
	 * 通过错误码构建异常（支持i18n）
	 * @param code 错误码（对应messages配置）
	 */
	public BusinessException(String code) {
//		super(MsgUtils.getMessage(code));
		super(code);
	}

	/**
	 * 通过错误码和参数构建异常（支持i18n）
	 * @param code 错误码
	 * @param args 格式化参数
	 */
	public BusinessException(String code, Object... args) {
		super(MsgUtils.getMessage(code, args));
	}

	/**
	 * 直接传入错误信息
	 * @param message 错误信息
	 */
	public BusinessException(String message, Throwable cause) {
		super(message, cause);
	}

	/**
	 * 带 cause 的异常
	 * @param cause 原始异常
	 */
	public BusinessException(Throwable cause) {
		super(cause);
	}

	/**
	 * 完整构造器
	 */
	public BusinessException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) {
		super(message, cause, enableSuppression, writableStackTrace);
	}
}
