Sintaxis:
La sintaxis de el intento-atrapar-finalmente el bloque se da a continuación.
intentardeclaración 1… N
catch (ExceptiontType var)
declaración 1… N
finalmente
declaración 1… N
Aquí, si ocurre una excepción dentro del bloque try, la excepción se lanzará al bloque catch, y el bloque finalmente es opcional aquí. El código del bloque finalmente se ejecuta tanto si se produce una excepción como si no.
Ejemplo-1: Manejo de excepciones con un solo bloque de captura
El siguiente ejemplo muestra el uso del manejo de excepciones usando un solo bloque de captura. Se tomará un nombre de archivo como entrada y creará un objeto de BufferedReader para abrir un archivo para su lectura. Si el nombre del archivo existe, entonces el contenido del archivo se leerá línea por línea y se imprimirá. Si el archivo no existe, se generará una excepción y se imprimirá un mensaje de error.
importar java.io.BufferedReader;importar java.io.FileReader;
importar java.io.IOException;
importar java.util.Escáner;
clase pública except1
public static void main (String [] args)
// Crea un objeto de escáner
Escáner en = nuevo escáner (Sistema.en);
Sistema.fuera.print ("Ingrese el nombre del archivo:");
// Tomar datos de cadena del usuario
String FileName = en.Siguiente();
intentar
// Crea un objeto lector
Lector BufferedReader = nuevo BufferedReader (nuevo FileReader (FileName));
// Lea la primera línea si el archivo existe
Línea de cadena = lector.readLine ();
while (línea != nulo)
// Imprime la línea
Sistema.fuera.println (línea);
// Leer la siguiente línea
línea = lector.readLine ();
// Cerrar el objeto lector
lector.cerca();
// Cerrar el objeto del escáner
en.cerca();
captura (IOException e)
// Imprime el mensaje de error
Sistema.fuera.println ("El archivo no existe");
Producción:
En la siguiente salida, 'Hola.TXT' se da como el nombre de archivo que no existe. Entonces se imprime el siguiente mensaje.
La próxima vez, archivo1.TXT se da como nombre de archivo que existe, y la salida muestra el contenido del archivo.
Ejemplo 2: manejo de excepciones con bloque de captura múltiple
En el siguiente ejemplo se muestra cómo puede usar múltiples bloques de captura para manejar múltiples excepciones. Aquí, se declaran tres bloques de captura. El primer bloque de captura detectará el error aritmético cuando se realice cualquier operación aritmética ilógica. El segundo catch bock detectará el error fuera de rango de la matriz cuando se intentará leer un valor de índice de matriz que no existe. El tercer bloque de captura detectará el error de valor numérico cuando se proporcione cualquier carácter o valor de cadena como un valor de matriz. En el código, se declara una matriz con cuatro índices y se inicializa con los valores enteros que se tomarán del usuario. Los valores de la matriz se imprimen mediante un bucle. Se realiza una operación de división al final del bloque try.
importar java.util.Escáner;clase pública except2
public static void main (String [] args)
intentar
// Declarar una matriz numérica
int num_arr [] = new int [4];
// Crea un objeto de escáner
Escáner en = nuevo escáner (Sistema.en);
Sistema.fuera.println ("Ingrese cuatro números:");
// Iterar el bucle cuatro veces
para (int i = 0; i < 4; i++)
//Número de entrada
int n = en.nextInt ();
// Asignar valor a la matriz
num_arr [i] = n;
Sistema.fuera.println ("Los valores de la matriz son:");
// Iterar el bucle cinco veces
para (int i = 0; i < 4; i++)
// Imprime los valores de la matriz
Sistema.fuera.println (num_arr [i]);
// Dividir e imprimir el valor
int num = 50/0;
Sistema.fuera.imprimir (num);
// Cerrar el objeto del escáner
en.cerca();
catch (ArithmeticException e)
Sistema.fuera.println ("Ningún número es divisible por 0");
catch (ArrayIndexOutOfBoundsException e)
Sistema.fuera.println ("Se produjo un valor de índice fuera de la matriz");
atrapar (Excepción e)
Sistema.fuera.println ("No se proporciona el valor numérico");
Producción:
El siguiente resultado muestra que los valores de la matriz se insertan e imprimen correctamente, pero el tercer bloque de captura se ejecuta porque 50 se divide por 0, lo cual es un error.
El programa se ejecuta por segunda vez. Cuando se proporciona un valor de cadena como un valor de matriz, se genera la segunda excepción y se ejecuta la declaración del segundo bloque catch.
Ejemplo-3: Manejo de excepciones con el bloque try-catch-billion
En el siguiente ejemplo se muestra el uso del bloque finalmente con el bloque try-catch. El código del bloque finalmente se ejecuta si ocurre una excepción o no. En el código, se tomará un valor entero del usuario. Si el usuario da cualquier valor de cadena, entonces InputMismatchException
generará e imprimirá el mensaje del bloque de captura. El objeto del escáner se cerrará en el finalmente bloquear si la excepción genera o no.
importar java.util.Escáner;importar java.util.InputMismatchException;
clase pública except3
public static void main (String [] args)
// Crea un objeto de escáner
Escáner en = nuevo escáner (Sistema.en);
Sistema.fuera.print ("Ingrese un número:");
intentar
// Tomar datos de cadena del usuario
int numero = en.nextInt ();
// Imprime el número
Sistema.fuera.println ("El valor de número =" + número);
captura (InputMismatchException e)
// Imprimir mensaje de error
Sistema.fuera.println ("No se acepta el valor de cadena.");
finalmente
// Cerrar el objeto del escáner
en.cerca();
Sistema.fuera.println ("Terminado del programa");
Producción:
78 se da como valor de entrada en la siguiente salida después de ejecutar el código. Entonces, no se genera ninguna excepción aquí. El mensaje del bloque finalmente se imprime más tarde.
próximo, Hola se da como entrada después de ejecutar el código que es una cadena. Entonces, se genera la excepción y se imprime el mensaje de error del bloque de captura. El mensaje del bloque finalmente se imprime más tarde.
Conclusión:
El manejo de excepciones es una característica muy importante y útil de cualquier lenguaje de programación que se puede utilizar para ocultar el mensaje de error real del usuario y proporcionar el mensaje de error legible por humanos para que el usuario comprenda el error correctamente. Este tutorial ayuda al usuario a aprender diferentes formas de aplicar el manejo de excepciones en Java y hacer que su código sea más apropiado.