Programa Java para manejar los métodos de excepción

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.");
        }
    }
}
Producción

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");
    }
}
Producción

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *