Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

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.

java_lang_exceptions.htm
Advertisements