1

我有这两种方法可以从文件中读取多个整数并将它们插入树中。如果找到文件,它工作正常,但如果找不到文件,它不会打印“找不到文件”。为什么它不进入 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 回答