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