繁体   English   中英

在过滤器中抛出异常

[英]Stream throw exception in filter

我已经定义了这个流:

public int sumNumbers(int[] numbers) {
    return IntStream.of(numbers)
            .filter(n -> n <= 1000)
            .sum();
}

我总结了不高于1000的所有整数。但是现在我想做的是,如果数组的任何元素是负数,则抛出异常。

我知道如何在旧式模式下执行此操作,但我想知道是否有任何使用Stream.filter()机制,我可以在其中定义过滤器和该过滤器的异常情况

只是为了澄清我想抛出异常,而不像其他问题那样控制运行时异常。

这里的想法是,如果我的过滤器是真的:

filter(n -> n < 0 throw Exception)

JDK中有一个IllegalArgumentException未经检查并通知错误的函数输入,因此可以在此处使用:

IntStream.of(numbers)
         .peek(n -> {
           if (n < 0) throw new IllegalArgumentException(String.valueOf(n));
         })
         .sum();

通常,当前Java发展为仅限未经检查的异常。 甚至在Java-8中添加了UncheckedIOException类!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM