📜  Java中的 ArrayStoreException

📅  最后修改于: 2022-05-13 01:55:24.329000             🧑  作者: Mango

Java中的 ArrayStoreException

每当尝试将错误类型的对象存储到对象数组中时,就会发生Java中的 ArrayStoreException。 ArrayStoreException 是一个扩展 RuntimeException 的类,这意味着它是在运行时抛出的异常。

类层次结构:

java.lang.Object
↳ java.lang.Throwable
    ↳ java.lang.Exception
        ↳ java.lang.RuntimeException
            ↳ java.lang.ArrayStoreException 

ArrayStoreException 的构造函数:

  1. ArrayStoreException():构造一个没有详细消息的 ArrayStoreException 实例。
  2. 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);
        }
    }
    

    运行时异常:

  • 如何处理 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);
            }
        }
    }
    

    输出: