English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
La excepción es un problema que ocurre durante la ejecución del programa (errores en tiempo de ejecución). Para entenderlo, veamos de manera diferente.
Generalmente, al compilar un programa, si no se crea un archivo .class en tiempo de compilación, ese archivo es el archivo ejecutable de Java y se ejecuta cada vez que se ejecuta este.classal ejecutar el programa, debe ejecutarse con éxito para ejecutar cada línea del programa sin problemas. Sin embargo, en ciertas situaciones especiales, el JVM se encuentra con algunas situaciones ambiguas al ejecutar el programa, es decir, no sabe qué hacer.
Aquí hay algunos ejemplos de casos-
Si el tamaño de su array es10si intenta acceder al índice11elemento.
Si intenta dividir un número por cero (el resultado es infinito y el JVM no puede entender cómo calcularlo).
Este caso se llama excepción. Cada posible excepción está representada por una clase predefinida, que puede encontrar en el paquete java.lang. También puede definir sus propias excepciones.
Algunas excepciones se indican en tiempo de compilación, llamadas excepciones de tiempo de compilación o excepciones verificadas.
Cuando ocurre esta excepción, necesita usar try-un bloque catch para manejarlas, o usar la palabra clave throws para lanzarlas (retrasar el manejo).
Cuando ocurre una excepción y no se maneja, el programa se detiene repentinamente y el código después de la línea que causó la excepción no se ejecutará.
Generalmente, el tamaño del array es fijo y se accede a cada elemento mediante índices. Por ejemplo, creamos un array de tamaño7El array. Luego, la expresión válida para acceder a los elementos del array será a [0] hasta a [6] (de longitud1)。
Cada vez que se utiliza un valor --ve o mayor o igual al tamaño del array, se lanzaArrayIndexOutOfBoundsException。
Por ejemplo, si ejecuta el siguiente código, mostrará los elementos del array y le pedirá que proporcione un índice para seleccionar un elemento. Dado que el tamaño del array es7Por lo tanto, el índice válido es de 0 a6。
import java.util.Arrays; import java.util.Scanner; public class AIOBSample { public static void main(String args[]){ int[] myArray = {1254, 1458, 5687,1457, 4554, 5445, 7524}; System.out.println("Los elementos en el array son: "); System.out.println(Arrays.toString(myArray)); Scanner sc = new Scanner(System.in); System.out.println("Introduzca el índice del elemento requerido: "); int element = sc.nextInt(); System.out.println("El elemento en el índice dado es :: ");+myArray[element]); } }
Pero, si observa la siguiente salida, hemos solicitado el índice9del elemento, ya que es un índice inválido, por lo que se produjoArrayIndexOutOfBoundsExceptiony terminó la ejecución.
Los elementos en el array son: [897, 56, 78, 90, 12, 123, 75] Introduzca el índice del elemento requerido: 7 Exception en el hilo "main" java.lang.ArrayIndexOutOfBoundsException: 7 at AIOBSample.main(AIOBSample.java:12)
Para resolver este problema, necesita pasar el código responsable de la excepción en el-catch el bloque de código que maneja la excepción para manejar la excepción.
import java.util.Arrays; import java.util.Scanner; public class AIOBSample { public static void main(String args[]){ int[] myArray = {1254, 1458, 5687,1457, 4554, 5445, 7524}; System.out.println("Los elementos en el array son: "); System.out.println(Arrays.toString(myArray)); try { Scanner sc = new Scanner(System.in); System.out.println("Introduzca el índice del elemento requerido: "); int element = sc.nextInt(); System.out.println("El elemento en el índice dado es :: ");+myArray[element]); }catch(ArrayIndexOutOfBoundsException ex) { System.out.println("Por favor, introduzca el índice válido (0 a 6); } } }
Resultado de salida
Los elementos en el array son: [1254, 1458, 5687, 1457, 4554, 5445, 7524] Introduzca el índice del elemento requerido: 7 Por favor, introduzca el índice válido (0 a 6)