-4

我有一个名为“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;必须被抓住或宣布被扔掉

这是为什么?

4

3 回答 3

6

因为FileNotFoundException是检查异常。您必须要么catch 处理它,要么throws在方法声明中处理它。不要只是吞下例外;这几乎不是“处理”它们的正确方法。

更多关于这个主题的阅读可以在官方 Java 教程中找到。

于 2013-03-25T15:43:44.160 回答
1
try {
   //block of code 
} catch (FileNotFoundException fnfe) { 
}

或者

public static void read() throws FileNotFoundException
于 2013-03-25T15:46:47.223 回答
0

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

public static void read() throws FileNotFoundException
{
    ... code here ...
}
于 2013-03-25T15:44:31.763 回答