一、异常的概述
异常:指的是程序在执行过程中,出现的非正常情况,最终导致JVM的非正常停止
注意:
1.在Java等面向对象的编程语言中,异常本身就是一个类,产生异常就是创建异常对象并抛出了一个异常对象。
2.Java处理异常的方式 中断处理(直接终止程序运行,把异常信息打印到控制台)
异常的继承体系:
异常的根类是 java.lang.Throwable:所有错误或异常的父类
- java.lang.Error:表示错误,程序员无法通过代码进行纠正,使得程序继续执行,类似于绝症,只能实现避免。
- java.lang.Exception:表示异常,程序员可以通过代码进行纠正,使得程序继续执行,类似感冒。
二、Exception异常的分类
1、编译异常
在编译期间出现的异常,如果编译期间不处理,那么就无法通过编译,程序也就无法执行,(如:日期格式化异常)
2、运行异常
在运行期间出现的异常,如果编译期间不处理,那么久无法通过编译,并且程序可以执行,只不过执行的时候会报异常(如:数学异常)
注意:RunException及其子类才是运行时异常,其余的都是编译异常
三、throw关键字
throw:翻译过来是“抛”的意思
作用:throw作用在方法内,用来抛出一个异常对象,将这个异常对象传递给调用处,并结束当前方法的执行。
格式:throw 异常对象
public static void main (String[] args) {
int[] arr = {11,22,33,44,55};
method(arr,5);
}
// 定义一个方法,查找指定索引
public static void method(int[] arrays,int index){
if(index < 0 || index > arrays.length -1){
// 如果进入这里的话,表示index索引值不在数组范围内
// 这里就不能写代码,编译的时候就会发现这里出现了异常,类似于return
throw new ArrayIndexOutOfBoundsException(index);
} else {
int num = arrays[index];
System.out.println(num);
}
}
四、声明处理异常
处理异常的目的:
为了让程序可以继续执行下去
概述:
使用throws关键字将问题标识出来,标识当前地方不处理异常,而是提醒给调用者,让调用者来处理...最终会到虚拟机,虚拟机会直接计数程序,打印异常信息
格式:
权限修饰符 返回值类型 方法名称(形参) throws 异常类1