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
就有意义了。试试吧。
我目前很困惑为什么当我尝试 运行 我的代码时收到 "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
就有意义了。试试吧。