pau*_*aul 4 java java-8 java-stream
我已经定义了这个流:
public int sumNumbers(int[] numbers) {
return IntStream.of(numbers)
.filter(n -> n <= 1000)
.sum();
}
Run Code Online (Sandbox Code Playgroud)
我总结了不高于1000的所有整数.但是现在我想做的是,如果数组的任何元素是负数,则抛出异常.
我知道如何做到这一点的老式的方式,但我想知道是否有任何机制Stream,并.filter()在那里我可以定义该过滤器的过滤器和异常情况
只是为了澄清我想抛出异常,而不像其他问题那样控制运行时异常.
这里的想法是,如果我的过滤器是真的:
filter(n -> n < 0 throw Exception)
Run Code Online (Sandbox Code Playgroud)
IllegalArgumentException在JDK中有一个未经检查并通知错误的函数输入,因此可以在这里使用:
IntStream.of(numbers)
.peek(n -> {
if (n < 0) throw new IllegalArgumentException(String.valueOf(n));
})
.sum();
Run Code Online (Sandbox Code Playgroud)
一般来说,目前Java正朝着未经检查的异常发展.甚至UncheckedIOException在Java-8中添加了类!
| 归档时间: |
|
| 查看次数: |
1208 次 |
| 最近记录: |