我一直在学习并发和流,API并遇到了这个。该offerLast()方法可以 throw InterruptedException,所以我知道我必须处理它。我不明白的是为什么我不能通过添加来将它扔到方法级别throws Exception?。因为它是code不编译的。
static BlockingDeque<Integer> queue = new LinkedBlockingDeque<>();
public static void testing() throws Exception {
IntStream.iterate(1, i -> i+1).limit(5)
.parallel()
.forEach(s -> queue.offerLast(s, 10000, TimeUnit.MILLISECONDS));
}
我知道它可以通过将它包围在 a 中来解决try/catch,或者通过创建wrapper method处理 的a来解决error,但我仍然试图理解为什么它不能在方法级别抛出。
回首忆惘然
喵喵时光机
相关分类