Programa Java para usar el bloque finalmente para la captura de excepciones

El bloque «finally» en Java se usa para colocar códigos importantes, como código de limpieza, por ejemplo, cerrar el archivo o cerrar la conexión. El bloque finalmente se ejecuta independientemente de que surja una excepción o no y de que se gestione o no una excepción. A finalmente contiene todas las declaraciones cruciales independientemente de que ocurra o no la excepción.

Hay 3 casos posibles en los que finalmente se puede usar el bloque:

Caso 1: Cuando no surge una excepción 

En este caso, el programa funciona bien sin lanzar ninguna excepción y finalmente se ejecuta en bloque después del bloque de prueba.

Java

// Java program to demonstrate
// finally block in java When
// exception does not rise 
  
import java.io.*;
  
class GFG {
    public static void main(String[] args)
    {
        try {
            System.out.println("inside try block");
            
            // Not throw any exception
            System.out.println(34 / 2);
        }
        
        // Not execute in this case
        catch (ArithmeticException e) {
            
            System.out.println("Arithmetic Exception");
            
        }
        // Always execute
        finally {
            
            System.out.println(
                "finally : i execute always.");
            
        }
    }
}
Producción

inside try block
17
finally : i execute always.

Caso 2: cuando la excepción surge y es manejada por el bloque catch

En este caso, el programa lanza una excepción pero es manejada por el bloque catch, y finalmente el bloque se ejecuta después del bloque catch.

Java

// Java program to demonstrate finally block in java
// When exception rise and handled by catch
  
import java.io.*;
  
class GFG {
    
    public static void main(String[] args)
    {
        try {
            System.out.println("inside try block");
  
            // Throw an Arithmetic exception
            System.out.println(34 / 0);
        }
  
        // catch an Arithmetic exception
        catch (ArithmeticException e) {
  
            System.out.println(
                "catch : exception handled.");
        }
  
        // Always execute
        finally {  
            
          System.out.println("finally : i execute always.");
        }
    }
}
Producción

inside try block
catch : exception handled.
finally : i execute always.

Caso 3: Cuando surge una excepción y no es manejada por el bloque catch 

En este caso, el programa lanza una excepción pero no es manejada por catch, por lo que finalmente el bloque se ejecuta después del bloque de prueba y después de la ejecución del programa de bloque final finaliza de manera anormal, pero finalmente el bloque se ejecuta bien.

Java

// Java program to demonstrate finally block 
// When exception rise and not handled by catch
  
import java.io.*;
  
class GFG {
    public static void main(String[] args)
    {
        try {
            System.out.println("Inside try block");
  
            // Throw an Arithmetic exception
            System.out.println(34 / 0);
        }
  
        // Can not accept Arithmetic type exception
        // Only accept Null Pointer type Exception
        catch (NullPointerException e) {
  
            System.out.println(
                "catch : exception not handled.");
        }
  
        // Always execute
        finally {
  
            System.out.println(
                "finally : i will execute always.");
        }
        // This will not execute
        System.out.println("i want to run");
    }
}

Producción

Inside try block
finally : i will execute always.
Exception in thread "main" java.lang.ArithmeticException: / by zero
    at GFG.main(File.java:10)

Publicación traducida automáticamente

Artículo escrito por nikhilchhipa9 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 *