数组常见的异常

本文记录在Java学习过程中遇到的数组中的异常~

数组越界异常:每个数组的索引都有一个范围,即0~length-1。在访问数组的元素时,索引不能超出这个范围,否则程序会报错。

示例代码(数组越界):

public class ArrayDemo {
	public static void main(String[] args) {
		int[] arr = new int[4]; // 定义一个长度为4的数组
		System.out.println("arr[0]=" + arr[4]); // 通过角标4访问数组元素
	}
}

上述代码运行所提示的错误信息是数组越界异常ArrayIndexOutOfBoundsException,出现这个异常的原因是数组的长度为4,其索引范围为0~3,而上述代码中的第4行代码使用索引4来访问元素时超出了数组的索引范围。

所谓异常指程序中出现的错误,它会报告出错的异常类型、出错的行号以及出错的原因。

空指针异常:在使用变量引用一个数组时,变量必须指向一个有效的数组对象,如果该变量的值为null,则意味着没有指向任何数组,此时通过该变量访问数组的元素会出现空指针异常。

public class ArrayDemo {
	public static void main(String[] args) {
		int[] arr = new int[3]; // 定义一个长度为3的数组
		arr[0] = 5; // 为数组的第一个元素赋值
		System.out.println("arr[0]=" + arr[0]); // 访问数组的元素
		arr = null; // 将变量arr置为null
		System.out.println("arr[0]=" + arr[0]); // 访问数组的元素
	}
}

上述代码中第4、5行代码都能通过变量arr正常地操作数组。第6行代码将变量置为null,当第7行代码再次访问数组时就出现了空指针异常NullPointerException。

标签: none