ArrayStoreException in Java occurs whenever an attempt is made to store the wrong type of object into an array of objects. The ArrayStoreException is a class which extends RuntimeException, which means that it is an exception thrown at the runtime.
Class Hierarchy:
java.lang.Object
↳ java.lang.Throwable
↳ java.lang.Exception
↳ java.lang.RuntimeException
↳ java.lang.ArrayStoreException
Constructors of ArrayStoreException:
- ArrayStoreException(): Constructs an ArrayStoreException instance with no detail message.
- ArrayStoreException(String s): Constructs an ArrayStoreException instance with the specified message s.
-
When does ArrayStoreException occurs?
ArrayStoreException in Java occurs whenever an attempt is made to store the wrong type of object into an array of objects.
Below example illustrates when does ArrayStoreException occur:
Since Number class is a superclass of Double class, and one can store an object of subclass in super class object in Java. Now If an integer value is tried to be stored in Double type array, it throws a runtime error during execution. The same thing wouldn’t happen if the array declaration would be like:
publicclassGFG {publicstaticvoidmain(String args[]){// Since Double class extends Number class// only Double type numbers// can be stored in this arrayNumber[] a =newDouble[2];// Trying to store an integer value// in this Double type arraya[0] =newInteger(4);}}Runtime Exception:
Exception in thread “main” java.lang.ArrayStoreException: java.lang.Integer
at GFG.main(GFG.java:13) -
How to handle with ArrayStoreException?
One can use try-catch block in Java to handle ArrayStoreException.
Below example illustrates how to handle ArrayStoreException:
publicclassGFG {publicstaticvoidmain(String args[]){// use try-catch block// to handle ArrayStoreExceptiontry{Object a[] =newDouble[2];// This will throw ArrayStoreExceptiona[0] =4;}catch(ArrayStoreException e) {// When caught, print the ArrayStoreExceptionSystem.out.println("ArrayStoreException found: "+ e);}}}Output:
ArrayStoreException found: java.lang.ArrayStoreException: java.lang.Integer
