how handle arrayindexoutofboundsexception java
Este tutorial proporciona una explicación detallada sobre una excepción importante lanzada por las matrices de Java, es decir, ArrayIndexOutOfBoundsException con ejemplos simples:
Hemos aprendido todo sobre las matrices en nuestros tutoriales anteriores. Las matrices son de naturaleza estática y su dimensión o tamaño se determina en el momento de su declaración. También sabemos que este tamaño o la cantidad de elementos declarados para la matriz son fijos y están numerados desde 0.
A veces, la lógica del programa es tal que el programa intenta acceder al elemento desde un índice que no existe. Por ejemplo, debido a fallas en un programa, un programa puede intentar acceder al 11thelemento en la matriz de 10 elementos. Esto resulta en una condición anormal.
cuál es su clave de seguridad de red
=> Echa un vistazo a la formación completa de Java para principiantes
Java proporciona una excepción en el paquete 'java.lang' que se lanza cuando se accede a un índice de matriz no existente. Esto se conoce como 'ArrayIndexOutOfBoundsException'.
Lo que vas a aprender:
ArrayIndexOutOfBoundsException
Como ya se dijo, cuando intenta acceder a elementos de la matriz más allá de una longitud especificada o un índice negativo, el compilador arroja la 'ArrayIndexOutOfBoundsException'.
ArrayIndexOutOfBoundsException implementa una interfaz 'serializable' y se deriva de la 'indexOutOfBoundsException' que a su vez se deriva de la clase RuntimeException, que es una subclase de la clase 'excepción'. Todas estas clases pertenecen al paquete 'java.lang'.
ArrayIndexOutOfBoundsException es una excepción en tiempo de ejecución, sin marcar y, por lo tanto, no necesita ser llamada explícitamente desde un método. A continuación se muestra el diagrama de clases de ArrayIndexOutOfBoundsException que muestra la jerarquía de herencia así como los constructores de esta excepción.
Diagrama de clases de ArrayIndexOutOfBoundsException
Como se explicó anteriormente, la clase ArrayIndexOutOfBoundsException tiene tres superclases, es decir, java.lang.exception, java.lang. runtimeException y java.lang.indexOutOfBoundsException.
A continuación, veremos algunos ejemplos de ArrayIndexOutOfBoundsException en java.
Ejemplo de excepción ArrayIndexOutOfBounds
Veamos el primer ejemplo que muestra la excepción ArrayIndexOutOfBounds que se lanza.
|_+_|Producción:
En el programa anterior, tenemos un conjunto de materias que consta de 5 elementos. Sin embargo, en el ciclo for, hemos establecido la condición de iteración como i<=subjects.length. Thus for the last iteration, the value of i is 5 which exceeds the array size. Hence, when printing array elements, the iteration i=5, results in ArrayIndexOutOfBoundsException being thrown.
A continuación se muestra otro ejemplo de acceso al índice negativo.
|_+_|Producción:
En el programa anterior, declaramos una matriz de tipo entero y luego accedemos a los elementos usando índices individuales. La primera expresión es válida pero en la segunda expresión, hemos intentado acceder al elemento en el índice = -4. Por lo tanto, la segunda expresión arroja ArrayIndexOutOfBoundsException como se muestra en la salida.
Evitar ArrayIndexOutOfBoundsException
La causa común de la aparición de ArrayIndexOutOfBoundsException es que el programador comete un error al usar los índices de la matriz.
Por lo tanto, el programador puede seguir las técnicas siguientes para evitar la aparición de ArrayIndexOutOfBoundsException.
Utilice índices de inicio y fin adecuados
Las matrices siempre comienzan con el índice 0 y no 1. De manera similar, se puede acceder al último elemento de la matriz utilizando el índice 'arraylength-1' y no 'arraylength'. Los programadores deben tener cuidado al usar los límites de la matriz y así evitar ArrayIndexOutOfBoundsException.
Uso de bucle for mejorado
Un bucle for o for-each mejorado itera sobre ubicaciones de memoria contiguas como matrices y solo accede a los índices legales. Por lo tanto, cuando se usa un bucle for mejorado, no debemos preocuparnos por el acceso a índices incorrectos o ilegales.
Ejemplo de iteración sobre una matriz utilizando Enhanced for Loop.
|_+_|Producción:
Hemos utilizado un bucle for mejorado en el programa anterior para iterar sobre la matriz de sujetos. Tenga en cuenta que para este ciclo, no es necesario especificar el índice explícitamente. Por lo tanto, el ciclo itera sobre la matriz hasta que se alcanza el final de la matriz.
Por lo tanto, es fácil corregir la excepción ArrayOutOfBoundsException utilizando índices adecuados y teniendo cuidado al especificar los límites de la matriz. También podemos hacer uso del bucle for mejorado para iterar sobre las matrices.
Pasemos a responder algunas preguntas frecuentes sobre excepciones en matrices.
Preguntas frecuentes
P # 1) ¿Por qué ocurre la excepción ArrayIndexOutOfBoundsException?
Responder: ArrayIndexOutOfBoundsException se produce cuando intenta acceder a un índice de matriz que no existe, es decir. el índice es negativo o está fuera de los límites de la matriz.
P # 2) ¿Qué es NegativeArraySizeException?
Responder: NegativeArraySizeException es una excepción de tiempo de ejecución que se lanza si una matriz se define con un tamaño negativo.
P # 3) ¿Qué es una excepción de matriz fuera de límite?
Responder: Una excepción de matriz fuera del límite ocurre cuando un programa intenta acceder a un elemento de matriz especificando un índice negativo o un índice que no está en el rango de la matriz especificada.
P # 4) ¿Podemos lanzar NullPointerException en Java?
Responder: Sí, puede lanzar NullPointerException en Java o, de lo contrario, la JVM lo hará por usted.
P # 5) ¿NullPointerException está marcado o desmarcado?
Responder: NullPointerException está desmarcado y extiende RuntimeException. No obliga al programador a utilizar el bloque catch para manejarlo.
Conclusión
En este tutorial, discutimos los detalles de ArrayIndexOutOfBoundsException en Java. Esta excepción generalmente se produce cuando en un programa intentamos acceder a los elementos de la matriz utilizando el índice negativo o el índice fuera de límites, como especificar un índice que es mayor que la longitud de la matriz especificada.
Esta excepción se puede evitar cuidando los índices mientras se accede a las matrices o utilizando un bucle for mejorado que, por diseño, solo accede a índices legales.
Pasaremos a otros temas de arreglos en nuestros tutoriales posteriores.
activación de puertos frente a reenvío de puertos
=> Explore el curso de Java GRATIS aquí.
Lectura recomendada
- Tutorial de reflexión de Java con ejemplos
- Tutorial de longitud de matriz de Java con ejemplos de código
- Excepciones de Java y manejo de excepciones con ejemplos
- Tutorial de JAVA para principiantes: más de 100 tutoriales prácticos en vídeo de Java
- Modificadores de acceso en Java: tutorial con ejemplos
- Matriz de Java: ¿Cómo imprimir elementos de una matriz en Java?
- Introducción al lenguaje de programación Java - Tutorial en vídeo
- Tutorial de Java SWING: contenedor, componentes y manejo de eventos