声明抛出此异常的异常和子类的方法

kon*_*ych 6 java exception-handling

声明抛出异常的方法和此异常的子类(例如IOExceptionFileNotFoundException)是否有意义?

我猜它是用来通过调用方法处理两个异常的方式不同.但是,如果方法抛出最通用的IOException,是否可以处理两个异常?

Jon*_*eet 7

但是,如果方法只抛出最通用的IOException,是否可以处理两个异常?

绝对.您仍然可以单独捕获它们:

try {
  methodThrowingIOException();
} catch (FileNotFoundException e) {
  doSomething();
} catch (IOException e) {
  doSomethingElse();
}
Run Code Online (Sandbox Code Playgroud)

因此,如果方法声明两者,调用者可以做什么没有区别- 这是多余的.但是,它可以强调您可能要考虑的异常.这可以在Javadoc中完成,而不仅仅是throws声明.