Un evento improbable que interrumpe el flujo normal del programa se conoce como Excepción. Java Exception Handling es una forma orientada a objetos de manejar excepciones. Cuando ocurre un error durante la ejecución del programa, se crea un objeto de excepción que contiene la información sobre la jerarquía de la Excepción y otra información que es esencial para la depuración.
Tipos de excepciones:
- Excepciones marcadas
- Excepciones no verificadas
Manejo de las excepciones:
Ejemplo 1:
Se nos pide que distribuyamos chocolates a todas las clases de la escuela según el rendimiento promedio de la clase. Nos dan dos arreglos de igual longitud. Una array contiene la cantidad de chocolates presentes en cada caja y la segunda array contiene la cantidad de estudiantes en cada clase. Si el rendimiento promedio de una clase está por debajo de la media, no son elegibles para obtener ningún chocolate y la cantidad de chocolates presentes en la caja se distribuirá equitativamente entre todas las demás cajas. Cada clase recibe una caja de bombones respectivamente.
Entonces, para dividir la cantidad de chocolates entre los estudiantes de una clase, tenemos que dividir la cantidad de chocolates por la cantidad de estudiantes en la clase. Supongamos que el desempeño promedio de una clase está por debajo del promedio, no recibirían chocolates y el número de estudiantes en esa sección sería cero. Uno puede enfrentar una excepción de división por cero al resolver el problema anterior. Para superarlo, podemos usar un bloque try-catch y pedirle al usuario que actualice la información proporcionada.
A continuación se muestra la implementación del enfoque anterior:
Java
// Java program to demonstrate Arithmetic Exception class GFG { public static void main(String[] args) { // Number of chocolates in each box int chocolates[] = { 106, 145, 123, 127, 125 }; // Number of students in class int students[] = { 35, 40, 0, 34, 60 }; // Number of chocolates given to each student of a // particular class int numChoc[] = new int[5]; try { for (int i = 0; i < 5; i++) { // Calculating the chocolates // to be distributed numChoc[i] = chocolates[i] / students[i]; } } // Catching Divide by Zero Exception catch (ArithmeticException error) { System.out.println("Arithmetic Exception"); System.out.println(error.getMessage() + " error."); } } }
Arithmetic Exception / by zero error.
Ejemplo 2:
Java tiene un mecanismo de manejo de errores robusto que nos permite manejar múltiples excepciones en un bloque de prueba usando diferentes bloques de captura. Los bloques catch en Java son como declaraciones if-else que se activarán cuando ocurra una excepción. Cuando ocurre una excepción, el programa compara el objeto de excepción generado con la excepción especificada en los bloques catch. El programa verifica el primer bloque catch, luego pasa a otro y así sucesivamente hasta que la excepción generada coincida. Si no coincide ningún bloque catch, el programa se detiene y se lanza una excepción en la consola.
Después de que se genera una excepción en el bloque de prueba, el control cambia inmediatamente al bloque de captura y el bloque de prueba ya no se ejecutará. Juegue con el siguiente código cambiando los tamaños de la array o cambiando un elemento particular en la array2 a cero o inicializando la array de respuesta, para obtener una mejor comprensión del manejo de excepciones de Java.
El siguiente código ilustra cómo se pueden manejar varios tipos de errores en un solo bloque de prueba.
Java
// Java Program to Handle Various Exceptions class GFG { public static void main(String[] args) { // Array1 Elements int[] array1 = { 2, 4, 6, 7, 8 }; // Array2 Elements int[] array2 = { 1, 2, 3, 4, 5 }; // Initialized to null value int[] ans = null; try { for (int i = 0; i < 5; i++) { ans[i] = array1[i] / array2[i]; // Generates Number Format Exception Integer.parseInt("Geeks for Geeks"); } } catch (ArithmeticException error) { System.out.println( "The catch block with Arithmetic Exception is executed"); } catch (NullPointerException error) { System.out.println( "The catch block with Null Pointer Exception is executed"); } catch (ArrayIndexOutOfBoundsException error) { System.out.println( "The catch block with Array Index Out Of Bounds Exception is executed"); } catch (NumberFormatException error) { System.out.println( "The catch block with Number Format Exception is executed"); } // Executes when an exception which // is not specified above occurs catch (Exception error) { System.out.println( "An unknown exception is found " + error.getMessage()); } // Executes after the catch block System.out.println("End of program"); } }
The catch block with Null Pointer Exception is executed End of program
Publicación traducida automáticamente
Artículo escrito por coder_srinivas y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA