<Thinking in Java>

继承关系:Object->Throwable->Exception

重新抛出的异常会把异常抛给上一级环境中的异常处理程序,同一个try块的后续catch子句将被忽略。

要想更新pirntStackTrace(),需要用到fillInStackTrace()   

异常链: 可以接受原始异常(cause)的三个Throwable子类 Error Exception RuntimeException(三者提供了带cause参数的构造器)

RuntimeException代表的是一种编程错误,程序员通常无法预知,(比如从你控制范围之外传递进来的null引用),故编译器不需要异常说明(throws RuntimeException)