list Java:如何使用try/catch块和return
如果列表为空并且我想getLast()
,下面的代码将抛出一个异常。另外,我想用throw/catch
-blocks对其进行修改,以便异常消息将出现在控制台上
double foo(double[] numbers, double n) {
LinkedList<Double> list = new LinkedList<Double>();
for (double x : numbers) {
if (x > 0 && x <= n && x % 2 != 0) {
list.add(x);
}
}
Collections.sort(list);
return list.getLast();
}
我的想法是:
double foo(double[] numbers, double n) {
LinkedList<Double> list = new LinkedList<Double>();
for (double x : numbers) {
if (x > 0 && x <= n && x % 2 != 0) {
list.add(x);
}
}
Collections.sort(list);
try{
return list.getLast();
} catch (Exception e){
System.out.println("caught: " + e);
}
return list.getLast();
}
是这样吗?异常是否被捕获?那throw/catch
-块后面的代码呢?它会执行吗?如果是,异常是否将由return list.getLast();
再次抛出
# 1 楼答案
如果
list.getLast()
抛出异常,将捕获该异常并打印消息。然后,您将执行完全相同的操作,并抛出完全相同的异常如果您依赖于列表空时抛出异常,请考虑重新投掷例外:
# 2 楼答案
我想你要找的是:
# 3 楼答案
为什么要使用try/catch呢。如果您只想确定列表是否为空,那么检查
list.size() != 0
怎么样?然后返回list.getLast()
(如果为真)或Double.Nan
(如果为假),并向控制台发送消息