En Java, trabajar con arrays y ArrayLists es fundamental, ya que permiten almacenar colecciones de datos de manera eficiente. Sin embargo, como cualquier otra estructura de datos, están sujetos a errores específicos que pueden lanzar excepciones si no se manejan adecuadamente. En este artículo, exploraremos las excepciones más comunes asociadas con arrays y ArrayLists y cómo manejarlas correctamente.
1. ArrayIndexOutOfBoundsException
Esta es una de las excepciones más comunes al trabajar con arrays. Ocurre cuando intentamos acceder a un índice que está fuera del rango del array.
Ejemplo:
try {
int[] numeros = {1, 2, 3};
int elemento = numeros[10]; // Intento de acceso a un índice inexistente
} catch (ArrayIndexOutOfBoundsException e) {
System.out.println("Acceso a índice fuera de rango: " + e.getMessage());
}
2. NullPointerException
En el contexto de arrays y ArrayLists, esta excepción puede ocurrir si intentamos operar en un array o ArrayList que no ha sido inicializado.
Ejemplo:
try {
int[] datos = null;
int longitud = datos.length; // Intento de acceso a un array no inicializado
} catch (NullPointerException e) {
System.out.println("Operación en un array null: " + e.getMessage());
}
3. NegativeArraySizeException
Esta excepción se lanza cuando intentamos crear un array con un tamaño negativo, lo cual es ilegal en Java.
Ejemplo:
try {
int[] datosNegativos = new int[-1]; // Intento de crear un array con tamaño negativo
} catch (NegativeArraySizeException e) {
System.out.println("Tamaño de array negativo no permitido: " + e.getMessage());
}
4. ConcurrentModificationException
Este error ocurre principalmente con ArrayLists cuando se intenta modificar la colección mientras se está iterando sobre ella mediante iteradores, excepto mediante el propio método remove()
del iterador.
Ejemplo:
try {
ArrayList<Integer> lista = new ArrayList<>(Arrays.asList(1, 2, 3));
for (Integer valor : lista) {
if (valor == 2) {
lista.remove(valor); // Modificación concurrente durante la iteración
}
}
} catch (ConcurrentModificationException e) {
System.out.println("Modificación concurrente detectada: " + e.getMessage());
}
5. UnsupportedOperationException
Esta excepción puede ocurrir cuando se intenta modificar un ArrayList no modificable, como aquellos devueltos por Arrays.asList()
al intentar operaciones como add
o remove
.
Ejemplo:
try {
List<Integer> listaFija = Arrays.asList(1, 2, 3);
listaFija.add(4); // Intento de añadir elementos a una lista no modificable
} catch (UnsupportedOperationException e) {
System.out.println("Operación no soportada en esta lista: " + e.getMessage());
}
Conclusión
El manejo adecuado de estas excepciones no solo previene la terminación abrupta de los programas sino que también proporciona una forma de manejar errores de forma más controlada, permitiendo que los programas sean más robustos y confiables. Utilizar bloques try-catch
para capturar y manejar estas excepciones asegura que tu código pueda gestionar situaciones inesperadas de manera efectiva.
¿QUÉ TE HA PARECIDO EL ARTÍCULO? Danos tu opinión al final de la página.
Deja tu comentario y ayúdanos a crecer.
¡SÍGUENOS EN TUS REDES FAVORITAS!
AYUDANOS A CRECER Y QUE LLEGUEMOS A TODAS LAS PERSONAS QUE NOS NECESITANA. SÍGUENOS EN TUS REDES.
Entra AQUÍ y elíge donde seguirnos.

NUESTRAS ÚLTIMAS PUBLICACIONES
- 🧪 Simulacro de Examen – Programación II VJ1208 (Simulacro 5 – Estilo PDF)
- 🧪 Simulacro de Examen – Programación II VJ1208 (Sin estructuras dinámicas)
- ¿Qué son los Stack, Push, Pop y Peek en C#?
- 🧪 Simulacro de Examen – Programación II VJ1208 (Versión Simplificada)
- 🧪 Simulacro de Examen – Programación II VJ1208 (Nivel Básico – 1 hora)
- 🧭 ¿Qué es la distancia Manhattan en C#? Ejemplo práctico
- Simulacro de Examen – Programación II (versión “larga”)
- Podcast Academia SanRoque – Historias de España – 001: Edad media en la península ibérica.
- El Arte de Inventar Idiomas: Entre la Genialidad y la Farsa
ELIGE TU RED FAVORITA Y SÍGUENOS.
AYUDANOS A CRECER Y A LLEGAR A TODAS LAS PERSONAS QUE NOS NECESITAN.
Contenido restringido
Comments are closed