Java 无法访问 FileNotFoundException 的捕获块

Java unreachable catch block for FileNotFoundException

我目前很困惑为什么当我尝试 运行 我的代码时收到 "unreachable catch block for FileNotFoundException."。我从主要方法参数中获取文件路径,并在输入路径错误或在路径中找不到文件的实例中捕获错误。

有人可以帮我解决这个问题吗?这是我这部分的代码:

public void readFile(String inputFilePath, String outputFilePath) throws IOException{

    StringBuilder sb = new StringBuilder();

    File input = null;

    try{
    input = new File(inputFilePath);
    }
    catch (FileNotFoundException e){
        System.err.println("Input file cannot be found in the provided path");
    }

因为这一行

input = new File(inputFilePath);

不会抛出 FileNotFoundException

如果你深入研究 new File(..) 的代码,这就是它的内容

public File(String pathname) {
     if (pathname == null) {
         throw new NullPointerException();
     }
     this.path = fs.normalize(pathname);
     this.prefixLength = fs.prefixLength(this.path);
}

如您所见,此方法不会抛出 FileNotFoundException,只有 NPE 的可能性。

如果您要扩展代码以像这样读取文件

new BufferedInputStream(new FileInputStream(input));  

那么FileNotFoundException就有意义了。试试吧。