尝试从文件中读取整数并将其复制到数组时,为什么会出现此错误?

时间:2013-03-25 15:42:42

标签: java arrays

我有一个名为“hours.txt”的文本文件,其中包含我想要读取的整数行并将它们复制到数组中。

整数是一周内8名员工的工作小时数。所以我创建了一个二维数组,其中行是员工,列是一周中的几天。

public static void read()
{

    Scanner read = new Scanner(new File("hours.txt"));
    int[][] hours = new int[8][7];


    for(int r=0; r<hours.length; r++)
    {
        for(int c=0; c<hours[0].length; c++)
        {
            while(read.hasNextInt())
            {
                hours[r][c]= read.nextInt();
            }
        }
    }

}

当我尝试编译时,我收到以下错误:

EmployeeHours.java:16:错误:未报告的异常FileNotFoundException;必须被抓住或宣布被抛出

为什么?谢谢你的帮助!

3 个答案:

答案 0 :(得分:6)

因为FileNotFoundException是已检查的例外。您必须在方法声明中catch and handle itthrows。并且不要只是吞下异常;这几乎从来都不是“处理”它们的正确方法。

可以找到关于这个主题的更多阅读in the official Java Tutorial

答案 1 :(得分:1)

try {
   //block of code 
} catch (FileNotFoundException fnfe) { 
}

public static void read() throws FileNotFoundException

答案 2 :(得分:0)

必须将异常FileNotFoundException声明为方法签名的一部分,以告诉Java编译器您的方法可以抛出该特定异常。您必须将方法定义更改为:

public static void read() throws FileNotFoundException
{
    ... code here ...
}