首先异常体系的超类Throwable(万物皆可抛),它有两个子类,Error和Exception。
Error是程序无法处理的错误,例如OutOfMemory,ThreadDeath等,这种情况只能交由JVM处理。
Exception:是可以处理的异常。分为受检异常(发生在编译期,通常我们的IOException就是受检异常,编译时异常,要求我们用try,catch捕获),不受检异常(一般发生在运行期,所以RuntimeException一般都是不受检的),一般不受检的异常都是由于逻辑问题所引起的。
然后附上一张异常类型图。
IMG20190216201423.jpg比较常见的未受检异常(运行时产生的异常):
ClassCastException:类转换异常
IndexOutOfBoundsException:数组越界异常
NullPointerException:空指针异常
ArrayStoreException:数据存储异常,操作数组时类型不一致
比较常见的受检异常:IO相关
FileNotFoundException:未找到指定文件异常。
网友评论