写了Throw后一定要写Throws吗?
不一定。
Java中的异常分为checkedException
和uncheckedException
,也可以成为检查型异常
和运行时异常
如果是checkedException
,你必须最终要去处理该异常,即要使用throws
关键字在方法签名上显示抛给上层处理
但是如果是uncheckedException
,Java就不会强制让你处理,因此不需要声明throws
checked exception例子
public void getName() throws IOException {
throw new FileNotFoundException(); // checked exception
unchecked exception例子
private void rangeCheckForAdd(int index) {
if (index > size || index < 0)
throw new IndexOutOfBoundsException(outOfBoundsMsg(index));
}