ArrayStoreException en Java ocurre cada vez que se intenta almacenar el tipo de objeto incorrecto en una array de objetos. ArrayStoreException es una clase que extiende RuntimeException, lo que significa que es una excepción lanzada en tiempo de ejecución.
Jerarquía de clases:
java.lang.Object ↳ java.lang.Throwable ↳ java.lang.Exception ↳ java.lang.RuntimeException ↳ java.lang.ArrayStoreException
Constructores de ArrayStoreException:
- ArrayStoreException(): Construye una instancia de ArrayStoreException sin mensaje de detalle.
- ArrayStoreException(String s): construye una instancia de ArrayStoreException con el mensaje s especificado .
-
¿Cuándo ocurre ArrayStoreException?
ArrayStoreException en Java ocurre cada vez que se intenta almacenar el tipo de objeto incorrecto en una array de objetos.
El siguiente ejemplo ilustra cuándo ocurre ArrayStoreException:
Dado que la clase Number es una superclase de la clase Double, y uno puede almacenar un objeto de subclase en un objeto de superclase en Java. Ahora, si se intenta almacenar un valor entero en una array de tipo doble, arroja un error de tiempo de ejecución durante la ejecución. No sucedería lo mismo si la declaración de la array fuera como:
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
);
}
}
Excepción en tiempo de ejecución:
Excepción en el subproceso «principal» java.lang.ArrayStoreException: java.lang.Integer
en GFG.main(GFG.java:13) -
¿Cómo manejar con ArrayStoreException?
Uno puede usar el bloque try-catch en Java para manejar ArrayStoreException.
El siguiente ejemplo ilustra cómo manejar 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);
}
}
}
Producción:
ArrayStoreException encontrada: java.lang.ArrayStoreException: java.lang.Integer