例外についていくつか疑問があります。
サブクラスでチェックされていない例外を許可しているのに、サブクラスでチェックされた例外を作成することをJavaが許可しない理由を誰か教えてください
以下の例では、「throws IOException」を使用するとコンパイル時エラーがスローされますが、サブクラスで「throws ArithmeticException」を使用するとエラーはスローされません。その背後にある実際の理由を知りたいだけなので、お願いできますか?
これがコードです(コンパイル時エラーが発生します)
package com.exception.test;
import java.io.IOException;
public class Parent {
void msg() {
System.out.println("Parent...");
}
public static void main(String[] args) {
Parent parent = new Child();
parent.msg();
}
}
class Child extends Parent {
void msg() throws IOException {
System.out.println("Child...");
}
}
//unCheckedException の使用
package com.exception.test;
import java.io.IOException;
public class Parent {
void msg() {
System.out.println("Parent...");
}
public static void main(String[] args) {
Parent parent = new Child();
parent.msg();
}
}
class Child extends Parent {
void msg() throws ArithmeticException {
System.out.println("Child...");
}
}