任何的异常都是Throwable类,并且在它之下包含两个字类Error / Exception。
而Error仅在当在Java虚拟机中发生动态连接失败或其它的定位失败的时候,Java虚拟机抛出一个Error对象。
典型的简易程序不捕获或抛出Errors对象,你可能永远不会遇到需要实例化Error的应用,那就让我们关心一下Exception。
Exception中比较重要的就是RuntimeException(运行时异常)-可能在执行方法期间抛出但未被捕获,RuntimeException描述的是程序的错误引起来的,因该由程序负担这个责任!
除了Error与RuntimeException,其他剩下的异常都是你需要关心的,而这些异常类统称为Checked Exception
至于Error与RuntimeException则被统称为Unchecked Exception.
Error属于JVM需要负担的责任;
RuntimeException是程序应该负担的责任;
checked exception 是具体应用负担的责任;
refer to https://blog.youkuaiyun.com/zhuyu_deng/article/details/43950289