Java处理异常的利器是 try … catch … finally 语句,该语句主要功能是能明确捕捉到某种类型的异常,并按要求进行处理,发挥异常处理机制的最佳优势
异常处理
try{
//可能出现异常的代码
}catch (异常类 1 [|异常类 2 ... |异常类 n] 异常对象){
//处理异常代码
}finally{
//一定会运行的代码
}
try···catch···finally语句的执行流程,如果try语句块的代码产生异常、JVM抛出该异常对象,并在catch语句中寻找匹配的异常类型,如果有匹配的类型则执行对应的catch语句块,然后执行finally语句块,否则直接执行finally语句块。finally 是异常处理的统一出口,不管程序是否产生异常,一定会执行finally语句块。如果省略finally,执行catch语句块后程序跳转到try···catch语句之后继续执行
数组下标越界异常
package chapter;
public class Demo {
public static void main (String [] args) {
int [] a = {1,2,3,4};
int index = 10; //数组元素位置
System.out.println ("====程序开始执行====");
try {
System.out.println("第" + index +"个元素的位置" + a[index]);
System.out.println("正在执行try语句");
}catch (ArrayIndexOutOfBoundsException e) {
System.out.println("执行catch语句");
e.printStaticTrace();
}finally {
System.out.println("====程序结束====");
}
}
}
虽然第八行出行错误,但仍然保持了从程序开始到程序结束的完整过程,利用Java异常处理机制,能保证程序再出行异常的情况下仍完成其他处理,程序没有崩溃