Java 8+是否存在判断布尔值为真否则抛指定异常的工具方法?
Java 8+ 中处理布尔条件校验并抛异常的方法
Java标准库本身没有提供专门针对布尔表达式的这类工具方法,但你可以通过以下几种方式实现需求:
1. 自定义工具方法
自己写一个简单的静态工具类就能满足需求,灵活性高:
public class ValidationUtils { private ValidationUtils() {} // 禁止实例化 public static void requireTrue(boolean condition, Supplier<? extends RuntimeException> exceptionSupplier) { if (!condition) { throw exceptionSupplier.get(); } } }
使用示例:
// 当myFalseReturningMethod()返回false时抛出异常 ValidationUtils.requireTrue(myFalseReturningMethod(), () -> new ValidationException("Check request"));
2. 借助第三方库(如Guava)
Google Guava的Preconditions类提供了现成的方法,比如checkState、checkArgument,支持布尔条件校验并抛出异常:
// 基础用法,抛出IllegalStateException com.google.common.base.Preconditions.checkState(myFalseReturningMethod(), "Check request"); // Guava 20+ 支持自定义异常Supplier com.google.common.base.Preconditions.checkState( myFalseReturningMethod(), () -> new ValidationException("Check request") );
注意:你给出的Optional用法无效
你示例中的代码Optional.of(myFalseReturningMethod).orElseThrow(...)无法实现需求,因为Optional.of(false)会把false包装成一个非空的Optional<Boolean>,而orElseThrow仅在Optional为空时才会抛出异常,所以这段代码永远不会触发异常,属于用法错误。
内容的提问来源于stack exchange,提问作者sonic boom
相关产品推荐
相关产品推荐

