异常:JAVA程序在 运行 时期发生的不正常的情况(问题)。
JAVA就按照面向对象的思想对不正常情况进行描述和对象的封装。
问题分为两种: Error: 由系统底层发生的,告诉JVM,JVM高速使用者。只能修改代码。
Exception:JVM发生并告诉使用者,可以针对性的处理。
int arr[] = new int[1];
System.out.println(arr[1]);
输出语句发生问题时,JVM就将这个已知的问题封装成了一个对象。throw new ArrayIndexOutOfBoundsException; 将问题抛给了调用者main函数。main没有针对性的处理方式,main就继续往外抛给使用者JVM,JVM就使用了默认的处理方式。将问题的名称+信息+位置在控制台上显示出来。让调用者看到并结束程序。
异常的处理有两种:
1、遇到问题不进行具体的处理,而是抛给调用者。其实就是方法上通过throws关键字声明异常,告诉调用者处理。
在编写功能时,编写者知道该功能有可能发生问题,而这个问题容易来自于调用者传递的参数,而导致功能无法运行,这时发生的问题就应该让调用者知道,并最好让调用者有预先的处理方式,所以在定义功能时,需要在功能上对有可能发生的问题进行声明。声明问题需要使用关键字throws 异常类。声明的目的就是让调用者可以进行处理。
2、针对性处理方式:捕获。
格式: try{
//有可能发生异常的代码。
}
catch(异常类 变量){
//这是真正的捕获,处理异常代码。
}
finally{
//一定会执行的代码。
}