当前位置:   article > 正文

常见的数组越界异常ArrayIndexOutOfBoundsException和空指针异常NullPointerException_怎么定义一个数组越界的报错

怎么定义一个数组越界的报错

数组越界异常ArrayIndexOutOfBoundsException和空指针异常NullPointerException(不足之处,还望大佬指正)
在java刚开始入手的时候,相信很多的初学者对这两个异常还是会经常遇到的,这两种异常从它们的名字,就大概知道它们表达的含义,

  1. 无非就是在使用数组时数组的索引值超出了数组的长度范围.才会报出数组越界异常.
    举一个简单的例子 例如:
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]);
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

解决办法:
首先可以先看一下,系统给出的错误信息.一般从最后开始往前看,我这里是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);
    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

解决办法:
同样的先看系统的爆出的红色提示:一般最后一行的提示 我的是main(TryTest.java:17),那么问题就出在了17行,有一个null的对象调用了方法,使得系统提示空指针异常.那么就修改对应的出现了null的对象.

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/608495
推荐阅读
相关标签
  

闽ICP备14008679号