在Java中Throwable是所有错误或异常的父类,Throwable又可分为Error和Exception,Exception又可分为RuntimeException(运行时异常)和CheckedException(检查异常),如图所示
Error
Error指Java程序运行错误。出现Error通常是因为系统的内部错误或资源耗尽。Error不能在运行中被动态处理。如果程序出现Error,则系统能做的工作也只能是通知用户,并尽力使程序安全终止,除此之外再也无能外力了。
常见的Error有:StackOverFlowError、OutOfMemoryError
Exception
Exception指Java程序运行异常,可以被Java异常处理机制处理。Exception也是程序开发中异常处理的核心。
RuntimeException:是指再Java虚拟机正常运行期间抛出的异常,常见的运行时异常包括错误的类型转换(ClassCastExcetion),数组访问越界(ArrayIndexOutOfBundsException),访问null指针(NullPinterException)
CheckedException :Java编译器再编译阶段会检查CheckedException异常并强制程序捕获和处理此类异常,即要求程序再可能出现异常的地方通过try catch语句块捕获并处理异常。常见的CheckedException有由于I/O错误导致的IOException、SQLException、ClassNotFoundException等。该类异常一般由于打开错误的文件、SQL语法错误、类不存在等引起。