我有一个名为“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;必须被抓住或宣布被抛出
为什么?谢谢你的帮助!
答案 0 :(得分:6)
因为FileNotFoundException
是已检查的例外。您必须在方法声明中catch
and handle it或throws
。并且不要只是吞下异常;这几乎从来都不是“处理”它们的正确方法。
可以找到关于这个主题的更多阅读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 ...
}