通过查看源码可知道,Throwable 的两种子类为:Error,Exception
Error:属于 JVM 层面的错误,一般不需要捕捉和修复
Exception:属于程序的错误,包含运行时异常和检查性异常,除了运行时异常剩下的都是检查性异常,运行时异常会继承RuntimeException,可以通过编辑器去查看源码,谁继承了RuntimeException即可知道哪些是运行时异常哪些是检查性异常了
下面列举了一写这两类异常常见的一些异常:
常见运行时异常:
NullPointerException
空指针异常,JAVA8中可用Optional来避免,一般是代码中出现了空对象时,抛出该异常
IndexOutOfBoundsException
数组下标越界异常,当使用的数组下标超出数组允许范围时,抛出该异常
ClassCastException
类型转换异常,当试图将对象强制转换为不是实例的子类时,抛出该异常
NumberFormatException
数字格式化异常,当试图将一个String转换为指定的数字类型,而该字符串确不满足数字类型要求的格式时,抛出该异常
JSONException
JSON异常,进行JSON格式化操作时出现异常,会抛出该异常
常见检查性异常:
SQLException
SQL异常IOException
IO异常,在对流操作时有可能会出现的异常FileNotFoundException
找不到某个文件时,会抛出该异常ClassNotFoundException
找不到某个类时,会抛出该异常EOFException
输入过程中意外地到达文件尾或流尾,会抛出该异常,常见于对流的操作