
- Java.lang - Home
- Java.lang - Boolean
- Java.lang - Byte
- Java.lang - Character
- Java.lang - Character.Subset
- Java.lang - Character.UnicodeBlock
- Java.lang - Class
- Java.lang - ClassLoader
- Java.lang - Compiler
- Java.lang - Double
- Java.lang - Enum
- Java.lang - Float
- Java.lang - InheritableThreadLocal
- Java.lang - Integer
- Java.lang - Long
- Java.lang - Math
- Java.lang - Number
- Java.lang - Object
- Java.lang - Package
- Java.lang - Process
- Java.lang - ProcessBuilder
- Java.lang - Runtime
- Java.lang - RuntimePermission
- Java.lang - SecurityManager
- Java.lang - Short
- Java.lang - StackTraceElement
- Java.lang - StrictMath
- Java.lang - String
- Java.lang - StringBuffer
- Java.lang - StringBuilder
- Java.lang - System
- Java.lang - Thread
- Java.lang - ThreadGroup
- Java.lang - ThreadLocal
- Java.lang - Throwable
- Java.lang - Void
- Java.lang Package Useful Resources
- Java.lang - Useful Resources
- Java.lang - Discussion
Java - ArrayStoreException
The Java ArrayStoreException is thrown when an attempt is made to store the wrong type of object in an array. The ArrayStoreException is a runtime exception that is thrown when you try to store an object of an incompatible type in an array.
There are some scenarios when JVM throws an ArrayStoreException in Java, two of them are following:
- When the user tries to store an object of an incompatible type in an array, JVM throws an ArrayStoreException.
- When the user tries to store an object of a subclass in an array of a super class, JVM throws an ArrayStoreException.
Constructors of ArrayStoreException
There are two constructors of ArrayStoreException class:
- ArrayStoreException(): This constructor is used to create an ArrayStoreException object without any message.
- ArrayStoreException(String message): This constructor is used to create an ArrayStoreException object with a message.
Methods of ArrayStoreException
There are some methods of ArrayStoreException class:
Method | Description |
---|---|
getMessage() | It is used to return the message of the exception. |
toString() | It is used to return the detail message string of the exception. |
printStackTrace() | It is used to print the stack trace of the exception. |
Example of ArrayStoreException
In this example, we are trying to store an object of an incompatible type in an array, so JVM will throw an ArrayStoreException.
public class ArrayStoreExceptionExample { public static void main(String[] args) { Object[] arr = new String[5]; arr[0] = new Integer(10); } }
Output
Following is the output of the above code:
Exception in thread "main" java.lang.ArrayStoreException: java.lang.Integer at ArrayStoreExceptionExample.main(ArrayStoreExceptionExample.java:4)
As you can see in the output, JVM throws an ArrayStoreException because we are trying to store an object of an incompatible type in an array.
Handling ArrayStoreException
In this example, we are trying to store an object of an incompatible type in an array, so JVM will throw an ArrayStoreException. We are handling this exception using try-catch block.
public class ArrayStoreExceptionExample { public static void main(String[] args) { Object[] arr = new String[5]; try { arr[0] = new Integer(10); } catch(ArrayStoreException e) { System.out.println("Can't store an object of an incompatible type in an array"); } } }
Output
Following is the output of the above code:
Can't store an object of an incompatible type in an array
How to Avoid ArrayStoreException?
Here are some ways to avoid ArrayStoreException:
- Always store the object of the same type in an array.
- Always check the type of object before storing it in an array.
- Always use the instanceof operator to check the type of object before storing it in an array.
By following the above ways, you can avoid the ArrayStoreException in Java.
Let's see an example to avoid ArrayStoreException:
public class ArrayStoreExceptionExample { public static void main(String[] args) { Object[] arr = new String[5]; if(arr[0] instanceof String) { arr[0] = "Hello"; } } }
Output
Following is the output of the above code:
Hello
As you can see in the output, we are storing the object of the same type in an array, so JVM does not throw an ArrayStoreException.