首页 > 编程语言 > 详细

摘抄003 - java检查参数(对象)的断言工具类CheckParamAssert,不满足条件则快速报错, 抛出自定义异常CheckParamException extends RuntimeException

时间:2020-01-18 21:36:24      阅读:459      评论:0      收藏:0      [点我收藏+]

CheckParamAssert 类

import org.springframework.util.ObjectUtils;
import java.util.Objects;

/**
 * 检查参数(对象)的断言工具,不满足条件则快速报错
 */
public class CheckParamAssert {
    public static void notEmpty(Object param, String errorMsg) {
        if (ObjectUtils.isEmpty(param)) {
            throw new CheckParamException(errorMsg);
        }
    }
    public static void isTrue(Boolean condition, String errorMsg) {
        if (!condition) {
            throw new CheckParamException(errorMsg);
        }
    }
}

值得注意的是, ObjectUtils.isEmpty() 是导自org.springframework.util.ObjectUtils,几乎涵盖了所有的常见Java对象

下面为这个方法isEmpty的主要代码:

public static boolean isEmpty(@Nullable Object obj) {
        if (obj == null) {
            return true;
        } else if (obj instanceof Optional) {
            return !((Optional)obj).isPresent();
        } else if (obj instanceof CharSequence) {
            return ((CharSequence)obj).length() == 0;
        } else if (obj.getClass().isArray()) {
            return Array.getLength(obj) == 0;
        } else if (obj instanceof Collection) {
            return ((Collection)obj).isEmpty();
        } else {
            return obj instanceof Map ? ((Map)obj).isEmpty() : false;
        }
    }

自定义异常类 CheckParamException

import lombok.Data;
import org.springframework.util.StringUtils;

/**
 * 业务错误自定义异常类,code表示报错编码: 404、500、505之类的, 暂用不到
*/
@Data
public class CheckParamException extends RuntimeException {
    private String message;
    private String code;

    public CheckParamException() {
    }

    public CheckParamException(String message) {
        super(message);
        this.message = message;
    }

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

    public CheckParamException(Throwable cause, String message) {
        super(message,cause);
        this.message = message;
    }

    private void setErrorMessage(String errorMessage){
        String errDesc = "";

        if(StringUtils.isEmpty(errorMessage)){
            this.message = errDesc;
        }else{
            this.message = errorMessage;
        }
    }
}

摘抄003 - java检查参数(对象)的断言工具类CheckParamAssert,不满足条件则快速报错, 抛出自定义异常CheckParamException extends RuntimeException

原文:https://www.cnblogs.com/zhazhaacmer/p/12210180.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!