异常
什么是异常?
异常是程序运行出现错误时,阻止了程序的正常运行。
Java异常的层次结构
里面都包含了一些我们常见的错误,像IndexOutOfBoundException(下标越界)、NullPointerException(空指针异常)
它们都间接继承自Throwable类。其中Throwable就有我们的Exception(异常)和Error(错误)两个重要子类
Exception
Exception异常可以分为两类:
-
运行时异常:程序运行时出现的异常称之为运行时异常,同时也称为不可查异常,包括运行时异常和ERROR,我们可以选择不抛出也可以不捕捉,这些异常都是由程序的逻辑错误引起的。
-
非运行时异常:编译器要求处理的异常,程序运行时可能会出现的异常,那么前面编译器都会提醒你,对这些异常进行处理,是抛出还是捕捉。
Error
Error是程序无法处理的错误,像JVM中的OOM(OutOfMemoryError)错误,一般引起这个错误的是虚拟机内存溢出或者内存泄露!当出现Error时,虚拟机直接退出工作,程序结束运行!
演示异常
例如我们这里创建一个数组,数组大小为10
int[] arr = new int[10];
因为数组下标都是从0开始的,那么可以访问的元素下标应该就是0-9,我们尝试访问下标为10的元素
public void test() {
// 创建数组,默认的初始值为0
int arr[] = new int[10];
System.out.println(arr[10]);
}
输出结果:
毫无疑问出现异常,其异常为ArrayIndexOutOfBoundsException(数组下标越界异常)
那么当我们出现异常后,后面代码还需要被执行,那会怎么样呢?
public void test() {
// 创建数组,默认的初始值为0
int arr[] = new int[10];
int a = 1,b = 2;
System.out.println(arr[10]);
System.out.println(a + b);
}
很明显&#