Java IOException错误

时间:2014-08-26 18:10:54

标签: java

请考虑以下代码段:

Scanner in = new Scanner(. . .);
. . .
if (in.hasNext())
{
   throw new IOException("End of file expected");
}

其中两个答案是:

一个。程序将显示消息"预期文件结束"如果在执行if语句时输入中还有数据。不正确

湾如果在执行if语句时输入中还有数据,程序将抛出异​​常。正确

我选择" a"。这不是真的吗?这两个陈述都不正确吗?谢谢。

2 个答案:

答案 0 :(得分:2)

该程序可能会也可能不会打印消息"预期文件结束"。如果抛出的异常从未被捕获,则程序将终止,并且与堆栈跟踪一起将打印该消息。但是,异常可能会在堆栈中被进一步捕获(即通过调用包含相关代码的方法的方法),在这种情况下,消息可能会打印出来也可能不会打印出来,具体取决于方法对异常执行的操作

如果您只给出上面的代码而没有其他上下文,那么唯一可以确定的是抛出异常。其他任何东西都取决于程序中代码的上下文。

答案 1 :(得分:1)

b定义为真,a不完全正确 很明显为什么b为真,因为如果符合条件,throw语句会抛出异常 但是,只有在未捕获异常并且默认异常处理程序打印异常消息时,a才会出现 但是,throw语句技术上并没有显示任何内容 如果您捕获异常或为此线程设置另一个未捕获的异常处理程序,则您的异常消息可能永远不会在任何地方显示。
这就是为什么只有b 当然正确。