java 文档说检查异常必须指定可以“捕获”异常或在方法声明中抛出异常的处理程序。但是,如果我这样做,例如:
public class DivZero{
public static void main(String[] args){
int a=10;
int[] b={1,2,3,4,0};
for (int i=0;i<b.length;i++){
System.out.println(a/b[i]);
}
}
}
Run Code Online (Sandbox Code Playgroud)
它也可以在没有“try-catch”或“throws”声明的情况下正常工作。它抛出一个java.lang.ArithmeticException。那么,这不是强制性的吗?编译器以相同的方式隐式抛出合适的 Java“Throwable”类。是这样吗?
ArithmeticExceptionextendsRuntimeException因此它不是一个已检查的异常。受检异常是继承自Exception但不是自RuntimeException.
[...] 已检查异常类都是
Throwableother thanRuntimeException及其子类和 Error 及其子类的子类。