1.异常的引入
现实生活中万物在发展和变化会出现各种各样不正常的现象。
例如:人的成长过程中会生病。
实际工作中,遇到的情况不可能是非常完美的。比如:你写的某个模块,用户输入不一定符合你的要求、你的程序要打开某个文件,这个文件可能不存在或者文件格式不对,你要读取数据库的数据,数据可能是空的等。我们的程序再跑着,内存或硬盘可能满了等等。
软件程序在运行过程中,非常可能遇到刚刚提到的这些异常问题,我们叫异常,英文是:Exception,意思是例外。这些,例外情况,或者叫异常,怎么让我们写的程序做出合理的处理,安全的退出,而不至于程序崩溃。
需求:根据索引获取数组中的元素值,我们需要考虑各种异常情况,伪代码如下:
【示例】根据索引获取数组中的元素值(仅限示意,不能运行)
public static int getValue(int[] arr, int index) {
// 索引为负数的时候
if(index < 0) {
System.out.println("索引不能为负数!!");
return ???; // 此处该返回什么呢?
}
// 索引大于等于数组长度的时候
if(index >= arr.length) {
System.out.println("索引不能大于等于数组长度!!");
return ???; // 此处该返回什么呢?
}
// 正常返回元素值
return arr[index];
}
这种方式,有好几个坏处:
-
逻辑代码和错误处理代码放一起!
-
程序员本身需要考虑的例外情况较复杂,对程序员本身要求较高!
-
可能无论怎么处理,都不能满足开发需求!!!
那么我们还如何应对以上的异常情况呢?其实JAVA给我们提供了处理异常的机制,就是当程序出现错误,程序安全退出的机制。
2.异常的概念
实际开发中,异常从面向对象的角度考虑也是一类事物,我们可以向上抽取为异常类。这个异常类可以对一些不正常的现象进行描述,并封装为对象。
我们开始看我们的第一个异常对象,并分析一下异常机制是如何工作的。
【示例】异常的分析案例
public class ExceptionTest {
public static void main(String[] args) {
test();
}
public static void test() {
int x = 3 / 0;
System.out.println("x:" + x);
}
}
java是采用面向对象的方式来处理异常的。当程序出现问题时,就会创建异常类对象并抛出异常相关的信息(如异常出现的位置、原因等)。
ps:如需最新的免费文档资料和教学视频,请添加QQ群(627407545)领取。f