Throwable
- throwable用来定义所有可以作为异常被抛出来的类,exception专指程序本身可以处理的异常,一般性的异常
- throwable是父类,exception是子类,exception是从throwable派生出来的
- throwable中包括exception(异常)和error(错误)
- Error是一种严重的问题,应用程序不应该捕捉它。 Exception一般可能是程序和业务上的错误,是可以恢复的
RuntimeException
- RuntimeException那些可能在 Java 虚拟机正常运行期间抛出的异常的超类。可能在执行方法期间抛出但未被捕获的 RuntimeException 的任何子类都无需在 throws 子句中进行声明。
- 开发中常见的RuntimeException有NullPointerException,ArrayOutOfBoundsException,ClassNotFoundException,ClassCastException,ArithmeticException
- 其他非RuntimeException类型的常见异常主要有以下几种,NoSuchMethodException,IOException,FileNotFoundException,NumberFormatException,SQLException
Error
- error(错误)表示系统级的错误和程序不必处理的异常,是java运行环境中的内部错误或者硬件问题,比如,内存资源不足等,对于这种错误,程序基本无能为力,除了退出运行外别无选择。
- AssertionError表示断言失败