如何处理 Java 中的 ArrayStoreException(未检查)?\

javaobject oriented programmingprogramming

 java.lang.ArrayStoreException 是一种 未检查异常,当我们尝试将某种类型的对象存储在不同类型的对象数组中时,就会发生这种情况。通常,当尝试将整数存储在不同类型的数组(如字符串数组或浮点数组等)中时,就会遇到 java.lang.ArrayStoreException: java.lang.Integer

示例 1

public class ArrayStoreExceptionTest {
   public static void main(String[] args) {
      Object[] names = new Float[2];
      names[1] = new Integer(2);
   }
}

输出

Exception in thread "main" java.lang.ArrayStoreException: java.lang.Integer
        at ArrayStoreExceptionTest.main(ArrayStoreExceptionTest.java:4)

在上面的程序中,发生了 java.lang.ArrayStoreException: java.lang.Integer 

  • java.lang.ArrayStoreException:当我们尝试将java.lang.Integer对象存储在 java.lang.Float数组中时,java语言抛出的异常。
  • java.lang.Integer:Integer是尝试存储不同类型的数组的对象类型。

如何处理ArrayStoreException

我们可以使用 try and catch块来处理ArrayStoreException 

  • 将可能抛出的语句括起来ArrayStoreException带有try and catch块。
  • 我们可以CatchArrayStoreException
  • 对我们的程序采取必要的措施,因为我们正在处理异常,并且执行不会中止。

示例2

public class ArrayStoreExceptionTest {
   public static void main(String[] args) {
      Object[] names = new Float[2];
      try {
         names[1] = new Integer(2);
      } catch (ArrayStoreException e) {
         e.printStackTrace();
         System.out.println("ArrayStoreException is handled");
      }
      System.out.println("Continuing with the statements after try and catch blocks");
   }
}

输出

ArrayStoreException is handled
Continuing with the statements after try and catch blocks
java.lang.ArrayStoreException: java.lang.Integer
      at ArrayStoreExceptionTest.main(ArrayStoreExceptionTest.java:5)

在上面的例子中,当发生异常时,执行从发生异常的点开始,转到 catch 块。它执行 catch 块中的语句,并继续执行 try 和 catch 块之后的语句。


相关文章