package cn.pluss.platform.leshua;

/**
 * @author yuchen
 *
 * @Description 
 */
public class BizRuntimeException extends Exception {
	
	/** 
	 * serialVersionUID:TODO(用一句话描述这个变量表示什么). 
	 *
	 * @since JDK 1.8 
	 */
	
	private static final long serialVersionUID = 1L;

	/** 通用错误码 **/
	public static final String GENERIC_ERR = "50000";
	
	/** 错误代码 **/
	private String errorCode;

	/**
	 * 构造方法，使用通用的错误码
	 * @param message
	 */
	public BizRuntimeException(String message) {
		super(message);
		this.errorCode = GENERIC_ERR;
	}

	/**
	 * 构造方法，使用指定的错误码
	 * @param errorCode
	 * @param message
	 */
	public BizRuntimeException(String errorCode, String message) {
		super(message);
		if (errorCode == null) {
			errorCode = GENERIC_ERR;
		}
		this.errorCode = errorCode;
	}
	
	/**
	 * 构造方法，使用枚举的错误码
	 * @param errCodeEnum
	 */
	public BizRuntimeException(ErrorCodeEnum errCodeEnum) {
		this(errCodeEnum.getErrCode(), errCodeEnum.getErrMsg());
	}

	/**
	 * 构造方法，且打印异常原因
	 * @param errorCode
	 * @param message
	 * @param cause
	 */
	public BizRuntimeException(String errorCode, String message, Throwable cause) {
		super(message, cause);
		this.errorCode = errorCode;
	}

	/**
	 * 构造方法，且打印异常原因，但不输出提示文本
	 * @param errorCode
	 * @param cause
	 */
	public BizRuntimeException(String errorCode, Throwable cause) {
		super(cause);
		this.errorCode = errorCode;
	}

	/**
	 * 得到异常码
	 * @return
	 */
	public String getErrorCode() {
		return errorCode;
	}

}

