通常一个方法如果有可能抛出异常,那么 IDE 会提示添加 throw ,然后上层函数就知道了。
但是为什么 java.util.List 类中的 get set 方法可以这么写,而没有提示。
编译期不会要求捕捉运行时异常,也就是说 RuntimeExceptin
及其子类都是不强制要求捕捉的。
看看 IndexOutOfBoundsExcepton
的继承树:
java.lang.Object
java.lang.Throwable
java.lang.Exception
java.lang.RuntimeException
java.lang.IndexOutOfBoundsException