无法访问 IOException 的 catch 块。 try语句体永远不会抛出这个异常,文件异常

问题描述 投票:0回答:2

为什么它打印出

IOException
无法访问,例如,如果我可以写错误的文件路径,并且它必须捕获它。

public static void main(String[] args) {
    try {
        File first_name = new File("SomePath\\Next_Text.txt");
        File second_name = new File("SomePath\\Renamed_Text.txt");

        boolean IsRenamed = first_name.renameTo(second_name);

        System.out.println("File succesfully renamed");
    } catch (IOException e) {
        e.printStackTrace();
    } catch (Exception e) {
        e.getStackTrace();
    }

}

我预计我必须先写2个catch才能catch

IOException
,然后
renameTo()

java file ioexception
2个回答
1
投票

它是说因为您提供的代码片段中没有任何内容会抛出

IOException
。 Java 中可用的 API 在代码和在线版本中都有详细记录,可以为您提供帮助。

只需删除该 catch 块,只要您计划以完全相同的方式处理每个异常,您就可以继续进行。

文件构造函数文档

new File(string);
只抛出
NullPointerException

重命名(文件)文档

file.renameTo()
仅抛出
SecurityException
NullPointerException


0
投票

try 块中没有方法会抛出

IOException

由于

IOException
是受检查异常,因此必须在方法的签名中声明它们,例如
public void method() throws IOException

顺便说一句:注意 java 命名约定。所有名称都应该是驼峰命名法而不是蛇形命名法,并且变量名称应该以小写字符开头

© www.soinside.com 2019 - 2024. All rights reserved.