1

ファイルから多数の整数を読み取り、それらをツリーに挿入するこれら2つの方法があります。ファイルが見つかった場合は正常に動作しますが、ファイルが見つからない場合は「ファイルが見つかりません」と出力されません。catchステートメントに入らないのはなぜですか? ありがとう!

public static void openF(Tree myT)
{

    try
    {
        x=new Scanner(new File("Number.txt")); 
        readF(myT);
    }
    catch(Exception e)
    {
        System.out.println("File not found");
    }
}


// to read from the file
public static void readF(Tree myT)
{

    while(x.hasNext()) //keeps going till it reaches the end of file
    {
        int a =x.nextInt();
        myT.insert(a); //insert in tree

    }
}
4

1 に答える 1

2

私はあなたのコードの簡略化されたバージョンをテストしました:

public static void main(String[] args) {
    try {
        new Scanner(new File("H:\\Hello.txt"));
        System.out.println("The file exists.");
    } catch (Exception e) {
        System.out.println("File not found: " + e.getMessage());
    }
}

ファイルが存在する場合、出力されThe file exists.ます。そうでない場合は、印刷されFile not found: H:\Hello.txt (The system cannot find the file specified)ます。

いいえ、catch ブロックは期待どおりに実行されています。エラーはコードの別の場所にありますが、完全なコードを提供していないか、実際にコンパイルされる部分 (x宣言されていない) を提供していないため、実際のエラーがどこにあるかを推測する方法はありません。

于 2013-05-12T11:04:20.963 に答える