Java中的 ArrayStoreException
每当尝试将错误类型的对象存储到对象数组中时,就会发生Java中的 ArrayStoreException。 ArrayStoreException 是一个扩展 RuntimeException 的类,这意味着它是在运行时抛出的异常。
类层次结构:
java.lang.Object
↳ java.lang.Throwable
↳ java.lang.Exception
↳ java.lang.RuntimeException
↳ java.lang.ArrayStoreException
ArrayStoreException 的构造函数:
- ArrayStoreException():构造一个没有详细消息的 ArrayStoreException 实例。
- ArrayStoreException(String s):构造一个带有指定消息s的 ArrayStoreException 实例。
ArrayStoreException 什么时候发生?
每当尝试将错误类型的对象存储到对象数组中时,就会发生Java中的 ArrayStoreException。
下面的示例说明了 ArrayStoreException 何时发生:
由于 Number 类是 Double 类的超类,在Java中可以将子类的对象存储在超类对象中。现在如果尝试将整数值存储在 Double 类型的数组中,它会在执行过程中引发运行时错误。如果数组声明如下:
public class GFG { public static void main(String args[]) { // Since Double class extends Number class // only Double type numbers // can be stored in this array Number[] a = new Double[2]; // Trying to store an integer value // in this Double type array a[0] = new Integer(4); } }
运行时异常:
Exception in thread “main” java.lang.ArrayStoreException: java.lang.Integer
at GFG.main(GFG.java:13)如何处理 ArrayStoreException?
可以使用Java中的 try-catch 块来处理 ArrayStoreException。
下面的示例说明了如何处理 ArrayStoreException:
public class GFG { public static void main(String args[]) { // use try-catch block // to handle ArrayStoreException try { Object a[] = new Double[2]; // This will throw ArrayStoreException a[0] = 4; } catch (ArrayStoreException e) { // When caught, print the ArrayStoreException System.out.println("ArrayStoreException found: " + e); } } }
输出:
ArrayStoreException found: java.lang.ArrayStoreException: java.lang.Integer