为什么我们在读取数据时不需要使用try-catch块,但是在将Scanner附加到文件时需要try-catch?

时间:2012-10-12 20:42:44

标签: java

我正在读一本关于The Scanner的编程书,它说我们在读取数据时不需要使用try-catch块,因为捕获了IOException,但是在将Scanner附加到文件时我们确实需要try-catch。

例如,在以下代码中需要try-catch。你能告诉我一个不需要try-catch但是错误是由IOException捕获的例子吗?

Scanner scnaFile = null;
String fileName = "dataFile.txt";
try{
    scanFile = new Scanner(new File(fileName));
} catch (FileNotFoundException ex){
     System.err.println(filename + " not found");
     System.exit(1);
}

1 个答案:

答案 0 :(得分:0)

  

你能告诉我一个不需要try-catch但错误的例子   是否被IOException捕获?

示例:

Scanner sc = new Scanner(new File("myNumbers"));  
while (sc.hasNextLong()) {  
   long aLong = sc.nextLong();  
}  

这些nextXXX方法不会抛出与I / O相关的任何异常,因为这会在代码中捕获。
如果输入是exausted,他们将抛出异常 阅读Scanner Javadoc