私が指導している学生の 1 人が使用している Java の本には、次の内容が含まれています (Blue Pelican Java version 3.0.5b Charles Cook):
呼び出しチェーンの次のレベルまで IOException をスローするメソッドがある場合、次のレベルにスローされる IOException に加えて、そのすべてのサブクラスもチェーンの次のレベルにスローされることに注意する必要があります。
これは明らかに間違っているように見えますが、正しいですか? この声明のバージョンは、学生の試験で提示され、真実であるはずでした.
また、次のコードは主張の反例のようです。
public class ExceptionsTester {
public static void main(String[] args) {
try {
throw new IOException();
} catch (FileNotFoundException e) {
System.out.println("Subclasses thrown");
} catch (IOException e) {
System.out.println("Subclasses not thrown");
}
}
}