异常分为 Checked异常 和 Unchecked异常,RuntimeException就是UncheckedException。
checked异常
Java认为 checked异常 都是可以被处理的异常,所以Java程序必须显示处理Checked异常。如果程序没有处理checked异常,该程序在编译时就会发生错误无法编译。
自己写的异常肯定是属于Checked异常,被认为是可以避免的异常,必须try…catch或者显式的抛出throws不然编译报错。
Unchecked异常
派生于Error类和RuntimeException类的所有异常称为Unchecked(非受查)异常,编译器会核查是否为所有受查异常提供了异常处理器,而不会检查Unchecked异常。
java编译器要求方法必须声明抛出可能发生的非运行时异常,但是并不要求必须声明抛出未被捕获的运行时异常。