-4

「hours.txt」という名前のテキストファイルがあります。このファイルには、読み取り、配列にコピーしたい整数の行が含まれています。

整数は、1週間に8人の従業員が働いた時間数です。そこで、行を従業員、列を曜日とする2次元配列を作成しました。

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 に答える