Throwable是Error的基类,也是Exception的基类
Error和Exception的关系
Error一般是会直接引起jvm出错的错误,例如Java虚拟机运行错误等,如果出现了当前线程会无法继续运行,大多数与代码编写者执行的操作无关。
Excpetion是程序本身可以处理的异常。发生后还能正常运行。其中RuntimeException(运行时异常),例如:数组下标越界、空指针异常等,程序可以处理、也可以不处理,也称为非检查异常。除了RuntimeException及其子类以外,其他的Exception类及其子类都属于检查异常,当程序中可能出现这类异常,要么使用try-catch语句进行捕获,要么用throws子句抛出,否则编译无法通过(常见的异常非运行异常:IOExeption和SQLException)。
Error可以被捕获吗
只要是Throwable和其子类都是可以throw和catch的。 但是不建议捕捉Error。