You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 11:55:16