gpt4 book ai didi

java - 在同一个 throws 子句中声明父异常和子异常有用吗?

转载 作者:行者123 更新时间:2023-12-02 02:14:54 24 4
gpt4 key购买 nike

我知道下面的代码确实有意义:

try { ... }
catch (FileNotFoundException exc) { ... }
catch (IOException exc) { ... }

但是在 throws 子句中声明这些父异常和子异常有意义吗?

假设我有以下代码:

public void doSomething() throws FileNotFoundException, IOException { ... }

我们都知道FileNotFoundExceptionIOException的子类。现在,以任何方式(可读性、性能等)来声明它是否有意义,而不是这样:

public void doSomething() throws IOException { ... }

最佳答案

对于 Java 编译器来说,子类是否在 throws 子句中并不重要,因为父类(super class)异常会覆盖它。

但是,出于文档目的,这一点很重要。方法的调用者可能想知道它可以抛出子类异常,例如FileNotFoundException,并以不同的方式处理它。

try {
doSomething();
}
catch (FileNotFoundException e) {
System.out.println("File not found!");
}
catch (IOException e) {
System.out.println("An I/O error has occurred: " + e.getMessage());
}

关于java - 在同一个 throws 子句中声明父异常和子异常有用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25330169/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com