(一)检查型异常
检查型异常:由编译器执行的检查,而被必须检查的这类异常;这类异常是必须被try…catch 或者throws处理的异常,否则不能继续运行,编译器一般会报错;
注:该类异常一般不是程序的逻辑错误,不处理没法通过编译;
(二)非检查型异常
非检查型异常:简单说,是代码逻辑上的错误,在编写代码时候是可以避免的,比如:数组越界,访问null对象,编译器一般不会强制性检查该类异常;
下面异常关系图中:
粉红色部分是检查型异常;
蓝色部分是非检查型异常;
Exception的子类中:
必检异常类型常见的有:FileNotFoundException(未发现文档)、IOException(IO流异常,拒绝访问)(可以动手试试,必须处理的异常);
免检异常类型常见的有:NullPointerExceptin(对象未初始化或为空)、ArithmeticException(异常的运算条件)、IndexOutofBoundsException(越界异常)、IllegalArgumentException(抛出后无需处理的异常);