当我从中读取的文件存在时,java程序会给我filenotfoundexception,但是如果我处理了这个异常,它就可以正常工作

avwztpqn  于 2021-06-30  发布在  Java
关注(0)|答案(2)|浏览(293)
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;

public class WordJumble {

    public static void main(String[] args) throws FileNotFoundException {
        // TODO Auto-generated method stub
        File file = new File("F:/Files/Topic.txt");
        Scanner sc = new Scanner(file); 

        String title = sc.nextLine();
        System.out.println(title);
        for(int i=0;i<10;i++){
            System.out.println(sc.nextLine());
        }
    }
}

目前,该计划做什么,我希望它,但为什么它给我一个错误的文件不存在?当我添加 throws 子句忽略错误它可以找到文件而没有问题。

nx7onnlm

nx7onnlm1#

当您说“addthestatementoignoretheerror”时,您的意思是将“throws…”子句添加到 main 所以它会编译得很干净。正确的?
怎么回事 Scanner 许多人投一个球 FileNotFoundException 如果找不到文件。必须在某处处理(捕获)此异常。
相反,您选择不处理,并说它可以从 main .
正确的方法是使用 try - catch 建筑。

try {
   Scanner sc = new Scanner(file);
   :
   :
catch (FileNotFoundException ex) {
   ... print an error or something ...
}

使用这种方法是为了使错误处理与代码的主流程“脱节”。

5t7ly7z5

5t7ly7z52#

虽然错误的措辞可能有点混乱,但错误本身并不是filenotfoundexception,而是抱怨您没有处理引发此类异常的可能性。编译器告诉您的是,您需要处理文件可能不在您认为的位置的问题。因此,当您添加 throws FileNotFoundException 对于方法签名,编译器会满意,错误也会消失。

相关问题