package com.hdkj.lt.base.exception;

import com.hdkj.hussar.IResultCode;

/**
 * @Description: 用于抛出自定义异常的类
 * @Author: wenhao
 * @Create: 2021/09/08 16:15
 * @Version: 1.0
 */
public class ExceptionCast {

    /**
     * 抛出异常
     *
     * @param resultCode 错误代码
     */
    public static void cast(IResultCode resultCode) {
        cast(null, resultCode);
    }

    /**
     * 抛出异常
     *
     * @param errorMessage 异常信息
     */
    public static void cast(String errorMessage) {
        cast(errorMessage, null);
    }

    /**
     * 抛出异常
     *
     * @param errorMessage 异常信息
     * @param errorCode    操作代码
     */
    public static void cast(String errorMessage, int errorCode) {
        cast(new IResultCode() {
            @Override
            public String getMessage() {
                return errorMessage;
            }

            @Override
            public int getCode() {
                return errorCode;
            }
        });
    }

    /**
     * 抛出异常
     *
     * @param errorMessage 异常信息
     * @param resultCode   操作代码
     */
    public static void cast(String errorMessage, IResultCode resultCode) {
        throw new BusinessException(errorMessage, resultCode);
    }

}
