赞
踩
数组越界异常ArrayIndexOutOfBoundsException和空指针异常NullPointerException(不足之处,还望大佬指正)
在java刚开始入手的时候,相信很多的初学者对这两个异常还是会经常遇到的,这两种异常从它们的名字,就大概知道它们表达的含义,
public static void main (String[] args){
//定义一个数组,长度为3
int[] arr = {1, 2, 3};
// 因为数组的索引是从0开始,所以2索引所在的位置对于的数据是3
System.out.println(arr[2]);
/*因为3索引对于的数据在数组中为第4个数据,已经超出了数组arr的长度
,所以就会报一个数组越界异常 java.lang.ArrayIndexOutOfBoundsException: 3
这个3 就是在提示程序员你想要的3索引对于的数据不存在.*/
System.out.println(arr[3]);
}
解决办法:
首先可以先看一下,系统给出的错误信息.一般从最后开始往前看,我这里是main(TryTest.java:28)
那么这个时候,看一下第28行的代码里面的内容,都是直接或者间接的使用数组的索引超出了数组的长度,所出现的问题.
2. 对于NullPointerException这是空指针异常,大部分就是你在使用对象的时候这个对象是一个null值.这时就会报出空指针异常.
举一个简单的例子:
public static void main(String[] args) {
//定义一个正常的字符串
String str1 = "i love java";
//定义一个null值的字符串
String str2 = null;
//取str1的长度
int len1 = str1.length();
/*取str2的长度,然而对于null值,我们在使用null去调用一个方法的时候
null本身是不代表任何数据的,本身就是一个空,所有我们使用 空 去调用一个方法
执行一定的程序,这本身就是不符合逻辑的了.故这个时候会报出空指针异常 */
int len2 = str2.length();
System.out.println(len1);
System.out.println(len2);
}
解决办法:
同样的先看系统的爆出的红色提示:一般最后一行的提示 我的是main(TryTest.java:17)
,那么问题就出在了17行,有一个null的对象调用了方法,使得系统提示空指针异常.那么就修改对应的出现了null的对象.
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。