前言
工作中经常使用if else 抛出自定义异常信息给前端,有时候一个请求方法需要很多if else 判断,此工具是为了消除if else 判断,简化代码
代码实现
java
/**
* 自定义断言类 指定断言不通过时抛出的异常
*/
@NoArgsConstructor(access = AccessLevel.PRIVATE)
public class CustomAssertUtil {
/**
* 是否为 true 如果为 false抛出异常
* @param expression bool
* @param message 提示信息
*/
public static void isTrue(boolean expression, String message) {
isTrue(expression, message, PunctuationConstant.EMPTY);
}
public static void isTrue(boolean expression, String message, Object... args) {
if (!expression) {
deFaultThrowCommon(StrUtil.format(message, args));
}
}
/**
* 是否为 true 如果为 false抛出异常
* @param expression bool
*/
public static <X extends Throwable> void isTrue(boolean expression, Supplier<? extends X> supplier) throws X {
if (!expression) {
throw supplier.get();
}
}
/**
* 是否为 false 如果为 true 抛出异常
*
* @param expression bool
* @param message 提示信息
*/
public static void isFalse(boolean expression, String message) {
isTrue(!expression, message);
}
/**
* 是否为 false 如果为 true 抛出异常
*
* @param expression bool
* @param message 提示信息
*/
public static void isFalse(boolean expression, String message, Object... args) {
isTrue(!expression, message, args);
}
/**
* 是否为 false 如果为 true 抛出异常
* @param expression bool
*/
public static <X extends Throwable> void isFalse(boolean expression, Supplier<? extends X> supplier) throws X {
if (expression) {
throw supplier.get();
}
}
/**
* 是否为 null 如果不为 null 抛出异常
* @param object obj
* @param message 提示信息
*/
public static void isNull(Object object, String message) {
isNull(object, message, PunctuationConstant.EMPTY);
}
/**
* 是否为 null 如果不为 null 抛出异常
* @param object obj
* @param message 提示信息
*/
public static void isNull(Object object, String message, Object... args) {
isTrue(object == null, message, args);
}
/**
* 是否为 null 如果不为 null 抛出异常
* @param object obj
* @param supplier 自定义异常
*/
public static <X extends Throwable> void isNull(Object object, Supplier<X> supplier) throws X {
isTrue(object == null, supplier);
}
/**
* 是否不为 null 如果为 null 抛出异常
* @param object obj
* @param message 提示信息
*/
public static void isNotNull(Object object, String message) {
isNotNull(object, message, PunctuationConstant.EMPTY);
}
/**
* 是否不为 null 如果为 null 抛出异常
* @param object obj
* @param message 提示信息
*/
public static void isNotNull(Object object, String message, Object... args) {
isTrue(object != null, message, args);
}
/**
* 是否不为 null 如果为 null 抛出异常
*/
public static <X extends Throwable> void isNotNull(Object object, Supplier<X> supplier) throws X {
isTrue(object != null, supplier);
}
/**
* 是否 为空 不为空抛出 异常
* @param str str
* @param message 提示信息
*/
public static void isEmpty(String str, String message) {
isEmpty(str, message, PunctuationConstant.EMPTY);
}
/**
* 是否 为空 不为空抛出 异常
* @param str str
* @param message 提示信息
*/
public static void isEmpty(String str, String message, Object... args) {
isTrue(StrUtil.isEmpty(str), message, args);
}
/**
* 是否 为空 不为空抛出 异常
* @param str str
* @param supplier 自定义异常
*/
public static <X extends Throwable> void isEmpty(String str, Supplier<X> supplier) throws X {
isTrue(StrUtil.isEmpty(str), supplier);
}
/**
* 集合为空, 如果不为null或不为空集合则抛出异常
* @param col 集合
* @param message 提示信息
*/
public static void isEmpty(Collection<?> col, String message) {
isEmpty(col, message, PunctuationConstant.EMPTY);
}
/**
* 集合为空, 如果不为null或不为空集合则抛出异常
* @param col 集合
* @param message 提示信息
*/
public static void isEmpty(Collection<?> col, String message, Object... args) {
isTrue(CollectionUtil.isEmpty(col), message, args);
}
/**
* 集合为空, 如果不为null或不为空集合则抛出异常
*/
public static <X extends Throwable> void isEmpty(Collection<?> col, Supplier<X> supplier) throws X {
isTrue(CollectionUtil.isEmpty(col), supplier);
}
/**
* 是否 不为空 为空抛出 异常
* @param str str
* @param message 提示信息
*/
public static void isNotEmpty(String str, String message) {
isNotEmpty(str, message, PunctuationConstant.EMPTY);
}
/**
* 是否 不为空 为空抛出 异常
* @param str str
* @param message 提示信息
*/
public static void isNotEmpty(String str, String message, Object... args) {
isTrue(StrUtil.isNotEmpty(str), message, args);
}
/**
* 是否 不为空 为空抛出 异常
* @param str str
* @param supplier 自定义异常
*/
public static <X extends Throwable> void isNotEmpty(String str, Supplier<X> supplier) throws X {
isTrue(StrUtil.isNotEmpty(str), supplier);
}
/**
* 集合不为空, 如果为null或空集合则抛出异常
* @param col 集合
* @param message 提示信息
*/
public static void isNotEmpty(Collection<?> col, String message) {
isNotEmpty(col, message, PunctuationConstant.EMPTY);
}
/**
* 集合不为空, 如果为null或空集合则抛出异常
* @param col 集合
* @param message 提示信息
*/
public static void isNotEmpty(Collection<?> col, String message, Object... args) {
isTrue(CollectionUtil.isNotEmpty(col), message, args);
}
/**
* 集合不为空, 如果为null或空集合则抛出异常
*/
public static <X extends Throwable> void isNotEmpty(Collection<?> col, Supplier<X> supplier) throws X {
isTrue(CollectionUtil.isNotEmpty(col), supplier);
}
/**
* 是否 为空 不为空抛出 异常
* @param str str
* @param message 提示信息
*/
public static void isBlank(String str, String message) {
isBlank(str, message, PunctuationConstant.EMPTY);
}
/**
* 是否 为空 不为空抛出 异常
* @param str str
* @param message 提示信息
*/
public static void isBlank(String str, String message, Object... args) {
isTrue(StrUtil.isBlank(str), message, args);
}
/**
* 是否 为空 不为空抛出 异常
* @param str str
* @param supplier 自定义异常
*/
public static <X extends Throwable> void isBlank(String str, Supplier<X> supplier) throws X {
isTrue(StrUtil.isBlank(str), supplier);
}
/**
* 是否 不为空 为空抛出 异常
* @param str str
* @param message 提示信息
*/
public static void isNotBlank(String str, String message) {
isNotBlank(str, message, PunctuationConstant.EMPTY);
}
/**
* 是否 不为空 为空抛出 异常
* @param str str
* @param message 提示信息
*/
public static void isNotBlank(String str, String message, Object... args) {
isTrue(StrUtil.isNotBlank(str), message, args);
}
/**
* 是否 不为空 为空抛出 异常
* @param str str
* @param supplier 自定义异常
*/
public static <X extends Throwable> void isNotBlank(String str, Supplier<X> supplier) throws X {
isTrue(StrUtil.isNotBlank(str), supplier);
}
/**
* 是否 allNotNull,hasNull抛出异常
*
* @param col 集合
* @param message 提示信息
*/
public static void isAllNotNull(Collection<?> col, String message) {
isAllNotNull(col, message, PunctuationConstant.EMPTY);
}
/**
* 是否 allNotNull,hasNull抛出异常
*
* @param col 集合
* @param message 提示信息
*/
public static void isAllNotNull(Collection<?> col, String message, Object... args) {
isTrue(CollectionUtil.isNotEmpty(col), message, args);
isTrue(col.stream().anyMatch(Objects::isNull), message, args);
}
/**
* 是否 allNotNull,hasNull抛出异常
*/
public static <X extends Throwable> void isAllNotNull(Collection<?> col, Supplier<X> supplier) throws X {
isTrue(CollectionUtil.isNotEmpty(col), supplier);
isFalse(col.stream().anyMatch(Objects::isNull), supplier);
}
/**
* 是否都不为空 如果存在为空 的元素则抛出异常
* @param col 集合
* @param message 提示信息
*/
public static void isAllNotEmpty(Collection<String> col, String message) {
isAllNotEmpty(col, message, PunctuationConstant.EMPTY);
}
/**
* 是否都不为空 如果存在为空 的元素则抛出异常
* @param col 集合
* @param message 提示信息
*/
public static void isAllNotEmpty(Collection<String> col, String message, Object... args) {
// 集合不为空判断
isTrue(CollectionUtil.isNotEmpty(col), message, args);
// 集合中不存在空元素
isFalse(col.stream().anyMatch(StrUtil::isEmpty), message, args);
}
/**
* 断言集合中所有元素都不为空,如果存在空元素则抛出异常
* @param col 集合
* @param supplier 自定义异常
*/
public static <X extends Throwable> void isAllNotEmpty(Collection<String> col, Supplier<X> supplier) throws X {
// 集合不为空判断
isTrue(CollectionUtil.isNotEmpty(col), supplier);
// 集合中不存在空元素
isFalse(col.stream().anyMatch(StrUtil::isEmpty), supplier);
}
/**
* 是否都不为空 如果存在为空 的元素则抛出异常
* @param col 集合
* @param message 提示信息
*/
public static void isAllNotBlank(Collection<String> col, String message) {
isAllNotBlank(col, message, PunctuationConstant.EMPTY);
}
/**
* 是否都不为空 如果存在为空 的元素则抛出异常
* @param col 集合
* @param message 提示信息
*/
public static void isAllNotBlank(Collection<String> col, String message, Object... args) {
// 集合不为空判断
isTrue(CollectionUtil.isNotEmpty(col), message, args);
// 集合中不存在空白元素
isFalse(col.stream().anyMatch(StrUtil::isBlank), message, args);
}
/**
* 断言集合中所有元素都不为空,如果存在空元素则抛出异常
* @param col 集合
* @param supplier 自定义异常
*/
public static <X extends Throwable> void isAllNotBlank(Collection<String> col, Supplier<X> supplier) throws X {
// 集合不为空判断
isTrue(CollectionUtil.isNotEmpty(col), supplier);
// 集合中不存在空白元素
isFalse(col.stream().anyMatch(StrUtil::isBlank), supplier);
}
/**
* 两个对象相等,如果不相等则抛出异常
* @param sourceObject obj1
* @param targetObject obj2
* @param message 提示信息
*/
public static void equal(Object sourceObject, Object targetObject, String message) {
equal(sourceObject, targetObject, message, PunctuationConstant.EMPTY);
}
/**
* 两个对象相等,如果不相等则抛出异常
* @param sourceObject obj1
* @param targetObject obj2
* @param message 提示信息
*/
public static void equal(Object sourceObject, Object targetObject, String message, Object... args) {
isTrue(Objects.equals(sourceObject, targetObject), message, args);
}
/**
* 两个对象相等,如果不相等则抛出异常
* @param sourceObject obj1
* @param targetObject obj2
* @param supplier 自定义异常
*/
public static <X extends Throwable> void equal(Object sourceObject, Object targetObject, Supplier<X> supplier) throws X {
isTrue(Objects.equals(sourceObject, targetObject), supplier);
}
/**
* 断言两个对象不相等,如果相等则抛出异常
* @param sourceObject obj1
* @param targetObject obj2
* @param message 提示信息
*/
public static void notEqual(Object sourceObject, Object targetObject, String message) {
notEqual(sourceObject, targetObject, message, PunctuationConstant.EMPTY);
}
/**
* 断言两个对象不相等,如果相等则抛出异常
* @param sourceObject obj1
* @param targetObject obj2
* @param message 提示信息
*/
public static void notEqual(Object sourceObject, Object targetObject, String message, Object... args) {
isTrue(Objects.equals(sourceObject, targetObject), message, args);
}
/**
* 断言两个对象不相等,如果相等则抛出异常
* @param sourceObject obj1
* @param targetObject obj2
* @param supplier 自定义异常
*/
public static <X extends Throwable> void notEqual(Object sourceObject, Object targetObject, Supplier<X> supplier) throws X {
isFalse(Objects.equals(sourceObject, targetObject), supplier);
}
/**
* 默认抛出异常
* @param message 提示信息
*/
public static void deFaultThrowCommon(String message) {
throw new CommonException(message);
}
}
使用举例
