uí hay un ejemplo simple que ilustra cómo observar y atrapar una excepción.
Como
saben, es un error intentar indexar una matriz más allá de sus límites. Cuando esto
ocurre, la JVM lanza una ArrayIndexOutOfBoundsException. El siguiente programa
genera a propósito tal excepción y luego la atrapa:
public class ExcDemo {
public static void main(String[] args) {
int nums[]=new int;
try {
System.out.println("Antes de que se genere la excepción.");
//generar una excepción de índice fuera de límites
nums=10;
}catch (ArrayIndexOutOfBoundsException exc){
//Capturando la excepción
System.out.println("Índice fuera de los límites!");
}
System.out.println("Después de que se genere la excepción.");
}
}
Salida:
Antes de que se genere la excepción.
Índice fuera de los límites!
Después de que se genere la excepción.
Aunque es bastante breve, el programa anterior ilustra varios puntos clave sobre el
manejo de excepciones:
Primero, el código que desea monitorear para detectar errores está dentro de un
bloque try.
En segundo lugar, cuando se produce una excepción (en este caso, debido al intento
de indexar nums más allá de sus límites), la excepción se emite desde el bloque try
y es atrapada por la instrucción catch. En este punto, el control pasa al catch, y
el bloque try finaliza.
Es decir, no se llama a catch. Por el contrario, la ejecución del programa se
transfiere a él. Por lo tanto, la instrucción que sigue a nunca se ejecutará.
Después de que se ejecuta la instrucción catch, el control del programa continúa
con las declaraciones que siguen el catch. Por lo tanto, es el trabajo de tu
controlador de excepción remediar el problema que causó la excepción para que la
ejecución del programa pueda continuar normalmente.