This question already has answers here:
Differences between Runtime/Checked/Unchecked/Error/Exception
(8个答案)
2年前关闭。
我想问一下处理数组的原因(Java设计规则),例如:
不需要尝试捕获
是否有某些异常总是由
任何回答都会为您提供有关此行为的设计规格/文档的参考。
(8个答案)
2年前关闭。
我想问一下处理数组的原因(Java设计规则),例如:
public static void main(String args[]){
System.out.println(args[2]);
}
不需要尝试捕获
ArrayIndexOutOfBoundsException
吗?是否有某些异常总是由
throws
分配的方法-javac
隐式存在,或者javac在这里完全不一致?任何回答都会为您提供有关此行为的设计规格/文档的参考。
最佳答案
ArrayIndexOutOfBoundsException
是RuntimeException
的子类,这使其成为未经检查的异常。未检查的异常不需要被捕获,也不需要在throws子句中声明。
这在RuntimeException
的Javadoc中进行了说明:
RuntimeException及其子类是未经检查的异常。如果未检查的异常可以由方法或构造函数的执行引发,并且可以在方法或构造函数的边界外传播,则无需在方法或构造函数的throws子句中声明未检查的异常。
09-25 22:31