Manejo de excepciones de Java

Manejo de excepciones de Java
Cuando el flujo normal de la ejecución del programa interrumpe por cualquier error, entonces se llama una excepción. Este tipo de evento se puede manejar usando un try-Catch-Finalmente bloquear. Una excepción es un objeto que se usa para captar el error y ejecutar la declaración en función de la condición de error que se llama manejo de excepciones. Principalmente dos tipos de errores se manejan mediante manejo de excepciones. Estos son Tiempo compilado errores y tiempo de ejecución errores. El tiempo de ejecución Los errores se manejan mediante manejo de excepciones. Cómo puede manejar las excepciones en Java se explica en este tutorial.

Sintaxis:

La sintaxis de el try-Catch-Finalmente El bloque se da a continuación.

intentar
Declaración 1 ... n

Catch (ExceptionTtype var)
Declaración 1 ... n

finalmente
Declaración 1 ... n

Aquí, si se produce una excepción dentro del bloque de try, entonces la excepción se lanzará al bloque de captura, y el bloque finalmente es opcional aquí. El código del bloque Finalmente ejecuta si se produce una excepción o 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 leer. Si el nombre de archivo existe, entonces el contenido del archivo será leído por línea e impreso. 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.utilizar.Escáner;
clase pública excepto1
public static void main (string [] args)
// crear un objeto de escáner
Escáner en = escáner nuevo (sistema.en);
Sistema.afuera.imprimir ("Ingrese el nombre de archivo:");
// tomar datos de cadena del usuario
Cadena filename = en.próximo();
intentar
// crear un objeto de lector
BufferedReader lector = new BufferedReader (nuevo FileReader (nombre de archivo));
// Lea la primera línea si el archivo existe
Línea de cadena = lector.readline ();
mientras (línea != nulo)
// imprime la línea
Sistema.afuera.println (línea);
// Lee la siguiente línea
línea = lector.readline ();

// Cierre el objeto del lector
lector.cerca();
// Cierre el objeto del escáner
en.cerca();
Catch (ioException e)
// Imprima el mensaje de error
Sistema.afuera.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 un 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 captará el error aritmético cuando se realice una operación aritmética ilógica. La segunda captura Bock captará el error fuera de rango de matriz cuando se intentará leer un valor de índice de matriz que no existe. El tercer bloque de captura captará el error de valor numérico cuando cualquier valor de carácter o cadena se proporciona como un valor de matriz. En el código, se declara e inicializa una matriz con cuatro índices con los valores enteros que se tomarán del usuario. Los valores de la matriz se imprimen usando un bucle. Una operación de división se realiza al final del bloque de try.

importar java.utilizar.Escáner;
clase pública excepto2
Public static void main (String [] args)

intentar

// declarar una matriz numérica
int num_arr [] = new int [4];
// crear un objeto de escáner
Escáner en = escáner nuevo (sistema.en);
Sistema.afuera.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.afuera.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.afuera.println (num_arr [i]);

// Divide e imprima el valor
int num = 50/0;
Sistema.afuera.imprimir (num);
// Cierre el objeto del escáner
en.cerca();

captura (arithmeticexception e)

Sistema.afuera.println ("ningún número es divisible por 0");

Catch (ArrayIndexoUtofBoundsexception e)

Sistema.afuera.println ("Se produjo el valor del índice de matriz");

captura (excepción e)

Sistema.afuera.println ("El valor del número no se da");


Producción:

La siguiente salida muestra que los valores de matriz se insertan e imprimen correctamente, pero el tercer bloque de captura se ejecuta porque 50 se divide por 0, que es un error.

El programa se ejecuta por segunda vez. Cuando se da un valor de cadena como valor de matriz, se genera la segunda excepción y se ejecuta la declaración del segundo bloque de captura.

Ejemplo-3: Manejo de excepciones con el bloque de tráfico de intentos

El uso del bloque Finalmente con el bloque try-capch se muestra en el siguiente ejemplo. El código de finalmente se ejecuta si se produce una excepción o no. En el código, se tomará un valor entero del usuario. Si el usuario da algún valor de cadena, entonces InputMisMatchException

generará e imprimirá el mensaje desde el bloque de captura. El objeto del escáner se cerrará en el finalmente bloquear si la excepción genera o no.

importar java.utilizar.Escáner;
importar java.utilizar.InputMisMatchException;
clase pública excepto3
public static void main (string [] args)
// crear un objeto de escáner
Escáner en = escáner nuevo (sistema.en);
Sistema.afuera.imprimir ("Ingrese un número:");
intentar
// tomar datos de cadena del usuario
int número = en.nextInt ();
// imprime el número
Sistema.afuera.println ("El valor del número =" + número);
Catch (InputMismatchException e)
// Mensaje de error de impresión
Sistema.afuera.println ("El valor de la cadena no es aceptado.");

finalmente
// Cierre el objeto del escáner
en.cerca();
Sistema.afuera.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 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 pueda usarse 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.