Exception和Error都是继承Throwable(java异常)。在Java中只有Throwable类型的实例才可以被抛出(throw)和捕获(catch),它是异常处理机制的基本组成类型。
Exception是程序正常运行中,可以预料的错误,可能并且应该被捕获,并进行相应的处理。
Error是在正常情况下,不大可能出现的情况,error一般会导致程序崩溃,常见的就是oom啦。
Exception又分为可检查和不检查类型,可检查异常在代码里必须进行显示的捕获,trycatch等,这是编译期检查的一部分。不检查异常就是所谓的运行时异常,比如空指针,数组越界等。