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:
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
);
}
}
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:
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);
}
}
}
Output:
ArrayStoreException found: java.lang.ArrayStoreException: java.lang.Integer