• 两种常见数组异常


    1.数组越界异常

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

    如下所示

     1   public class ArrayDemo06 {

     2       public static void main(String[] args) {

     3           int[] arr = new int[4]; // 定义一个长度为4的数组

     4           System.out.println("arr[0]=" + arr[4]); // 通过角标4访问数组元素

     5       }

     6   }

    运行结果如下图所示。

     

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

    2.空指针异常

    在使用变量引用一个数组时,变量必须指向一个有效的数组对象,如果该变量的值为null,则意味着没有指向任何数组,此时通过该变量访问数组的元素会出现空指针异常,接下来通过一个案例来演示这种异常,如下所示。ArrayDemo07.java

     1   public class ArrayDemo07 {

     2       public static void main(String[] args) {

     3           int[] arr = new int[3]; // 定义一个长度为3的数组

     4           arr[0] = 5; // 为数组的第一个元素赋值

     5           System.out.println("arr[0]=" + arr[0]); // 访问数组的元素

     6           arr = null; // 将变量arr置为null

     7           System.out.println("arr[0]=" + arr[0]); // 访问数组的元素

     8       }

     9   }

    运行结果如下图所示。

     

     

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

  • 相关阅读:
    AC自动机
    【洛谷P1972】HH的项链
    【洛谷P4341】外星联络
    【洛谷P4576】棋盘游戏
    【JZOJ3800】败屩妖
    【JZOJ3798】临洮巨人
    【洛谷P3830】随机树
    【JZOJ3799】青蛙神
    牛客练习赛56 题解
    【洛谷P5300】与或和
  • 原文地址:https://www.cnblogs.com/gaowc/p/10248739.html
Copyright © 2020-2023  润新知