Java

Manejo de excepciones de Java

Manejo de excepciones de Java
Cuando el flujo normal de la ejecución del programa se interrumpe por cualquier error, se denomina excepción. Este tipo de evento se puede manejar usando un intento de atrapar finalmente cuadra. Una excepción es un objeto que se utiliza para detectar el error y ejecutar la declaración en función de la condición de error que se denomina manejo de excepciones. El manejo de excepciones maneja principalmente dos tipos de errores. Estos son tiempo compilado errores y tiempo de ejecución errores. La tiempo de ejecución los errores se manejan mediante el manejo de excepciones. En este tutorial se explica cómo puede manejar las excepciones en Java.

Sintaxis:

La sintaxis de el intento-atrapar-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 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.

Cómo mostrar el contador de FPS en juegos de Linux
Los juegos de Linux obtuvieron un gran impulso cuando Valve anunció el soporte de Linux para el cliente Steam y sus juegos en 2012. Desde entonces, mu...
Cómo descargar y jugar Sid Meier's Civilization VI en Linux
Introducción al juego Civilization 6 es una versión moderna del concepto clásico introducido en la serie de juegos Age of Empires. La idea era bastant...
Cómo instalar y jugar a Doom en Linux
Introducción a Doom La serie Doom se originó en los años 90 después del lanzamiento del Doom original. Fue un éxito instantáneo y, desde ese momento e...