gpt4 book ai didi

java - 为什么我不需要在这里用 try、catch 包装已检查的异常?

转载 作者:行者123 更新时间:2023-12-01 18:00:12 25 4
gpt4 key购买 nike

我在下面的代码中使用了 lambda 表达式,但即使该方法抛出已检查的异常,Eclipse 也不要求我用 try、catch block 包装调用。为什么?

package lambda;

//Throw an exception from a lambda expression.

interface DoubleNumericArrayFunc {
double func(double[] n) throws EmptyArrayException;
}

class EmptyArrayException extends Exception { // Checked exception
}

public class LambdaExceptionDemo {

public static void main(String args[]) throws EmptyArrayException {

DoubleNumericArrayFunc average = (n) -> {
if (true)
throw new EmptyArrayException();
return 1;
};


// Why try catch isn't required here?
System.out.println("The average is " + average.func(new double[0]));
}

}

最佳答案

public static void main(String args[]) throws EmptyArrayException {

因为 main() 上有一个 throws 子句。允许传播异常,因此不需要捕获它。删除抛出,您将需要添加一个try/catch。

关于java - 为什么我不需要在这里用 try、catch 包装已检查的异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41599258/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com