当前位置: 首页 > 知识库问答 >
问题:

为什么我不能捕获此FileNotFoundException?

邵飞鸿
2023-03-14
package test4;

import java.io.*;

public class Reader {

    public static void main(String[] args) {
        print(send("test.txt"));
    }

    public static BufferedReader send(String filename) {
        File file = null;
        FileReader filer = null;
        BufferedReader filed = null;

        try {
            file = new File(filename);
        } catch(FileNotFoundException e) {
            System.err.println("Could not find file!");
        }

        try {
            filer = new FileReader(file);
        } catch(Exception e) {
            System.err.println("Could not initialize file reader!");
        }

        try {
            filed = new BufferedReader(filer);
        } catch(Exception e) {
            System.err.println("Could not initialize buffered reader!");
        }

        return filed;
    }
}

由于找不到文件,send方法返回null BufferedReader。Eclipse只是说有一个NullPointerException是因为print方法,但是当我移除所有try/catch语句时,Eclipse说我需要编写方法抛出IOException或FileNotFoundException,它也允许我这样做,如果我不这样做,它就抛出一个FileNotFoundException。然而,当我试图捕获文件的FileNotFoundException时,Eclipse说这是不可访问的代码?这里基本上是这样的:

    try {
        file = new File(filename);
    } catch(FileNotFoundException e) {
        System.err.println("Could not find file!");
    }

当删除try/catch语句就可以抛出FileNotFoundException时,为什么Eclipse说这段代码是不可访问的?

共有1个答案

何志业
2023-03-14

文件的contructor不抛出FileNotFoundException,您可以在javadoc:

公用文件(字符串路径名)

通过将给定的路径名字符串转换为抽象路径名来创建新的文件实例。如果给定的字符串是空字符串,那么结果就是空的抽象路径名。

抛出:nullPointerException-如果路径名参数为null

但是文件读取器扔了!同样,另一个javadoc

public FileReader(File File)抛出FileNotFoundException创建一个新的FileReader,给定要读取的文件。

throws:FileNotFoundException-如果文件不存在,是目录而不是常规文件,或者由于其他原因无法打开读取。

 类似资料:
  • 问题内容: 我的系统是ubuntu 12.04。我从修改了示例,并添加了示例。但是生成时我无法获得输出。 是一个错误吗?源代码的片段如下: 问题答案: 请参阅此答案以及该答案以获取详细说明。仔细阅读signal(7)和signal-safety(7)。也请记住,虚拟地址空间的的过程中是常见的,和之间,所有的共享线程是进程。另请参见proc(5)(并使用pmap(1)),并尝试 从您的进程内部进行读

  • 问题内容: 如果html文件是本地文件(在我的C驱动器上),则可以使用,但是如果html文件在服务器上并且图像文件是本地文件,则无法使用。这是为什么? 任何可能的解决方法? 问题答案: 如果客户端可以请求本地文件系统文件,然后使用JavaScript找出其中的内容,则将是一个安全漏洞。 解决此问题的唯一方法是在浏览器中构建扩展。Firefox扩展和IE扩展可以访问本地资源。Chrome的限制更为严

  • 在try块中为未抛出异常子类的方法捕获异常,将无法编译。当我捕捉到异常时,它起作用了。它是如何工作的??

  • 我正在尝试设置React组件中的状态,以便它在子组件的输入值发生变化时进行更改。我可以console.log和并获得预期的字符串,但是我不能编译这个函数: 我很困惑,因为我在我的。 我的getInitialState是:

  • null null 我在/s/chart/img/purple.png中有一个img,我想在“ChartContainer3”中创建,但我不明白当我单击submit时没有发生任何事情,没有创建。那么我如何在“ChartContainer3”中进行创建呢?

  • 两者都将找到答案996没有问题。我们使用modulos来保持合理的输出大小,使用pair来避免指数分支。 对于n=5000,C++代码输出783,但Python会抱怨 如果我们加上几行