gpt4 book ai didi

java - 在没有捕获的 try/catch/finally 中会发生什么?

转载 作者:搜寻专家 更新时间:2023-11-01 01:54:34 24 4
gpt4 key购买 nike

看到我在期中考试中做错的一道题,这让我想知道:

public double[] readInputFile(String fielane) throws IOException
{
File inputFile = new File(filename);
Scanner in = new Scanner(inputFile);
try
{
readData(in);
return data;
}
finally
{
inputFile.close();
}
}

这会将所有异常传递回链,还是只传递已检查的 IOException?

最佳答案

finally block 将被执行,然后最初抛出的异常(即由于 readData(in) 抛出的第一个异常)将被执行渗透。

我想这个问题中的警告是关于将被渗透的异常类型。这可能是 IOException,或任何类型的未经检查的异常(即 java.lang.RuntimeExceptionjava.lang.Error 的子类) >).

EDITED 根据@zapl 的评论:如果 finally block 抛出 IOException(作为 inputFile.close( )),无论 try block 是否抛出异常,该异常都将渗透到调用者。

关于java - 在没有捕获的 try/catch/finally 中会发生什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13773572/

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