¿Por qué necesita cerrar los flujos de Java en el bloque finalmente?

En Java , finalmente, el bloque es un bloque que se usa para ejecutar código importante y común. El bloque finalmente se usa principalmente durante el manejo de excepciones con try and catch para cerrar flujos y archivos. El código en el bloque finalmente se ejecuta independientemente de si hay una excepción o no. Esto garantiza que todos los archivos abiertos se cierren correctamente y todos los subprocesos en ejecución finalicen correctamente. Por lo tanto, los datos en los archivos no se dañarán y el usuario estará seguro.

Finalmente, el bloque se ejecuta después de intentar y atrapar el bloque. El flujo del código es:

  • probar
  • captura
  • finalmente

A continuación se mencionan dos ejemplos de cuándo se produce una excepción y cuándo no.

Observaremos que finalmente bloque se ejecuta en nuestros dos códigos.

Ejemplo 1 : con excepción en el código

Java

// Java program to show the execution of the code
// when exception is caused
 
import java.io.*;
 
class GFG {
    public static void main(String[] args)
    {
        try {
           
            // open files
            System.out.println("Open files");
           
            // do some processing
            int a = 45;
            int b = 0;
           
            // dividing by 0 to get an exception
            int div = a / b;
           
            System.out.println("After dividing a and b ans is " + div);
        }
 
        catch (ArithmeticException ae) {
            System.out.println("exception caught");
 
            // display exception details
            System.out.println(ae);
        }
 
        finally {
            System.out.println("Inside finally block");
 
            // close the files irrespective of any exception
            System.out.println("Close files");
        }
    }
}
Producción

Open files
exception caught
java.lang.ArithmeticException: / by zero
Inside finally block
Close files

Ejemplo 2 : Sin excepción

Java

// Java program to show the execution of the code
// when exception is not caused
 
import java.io.*;
 
class GFG {
    public static void main(String[] args)
    {
        try {
           
            // open files
            System.out.println("Open files");
           
            // do some processing
            int a = 45;
            int b = 5;
           
            int div = a / b;
            System.out.println("After dividing a and b ans is " + div);
        }
 
        catch (ArithmeticException ae) {
           
            System.out.println("exception caught");
 
            // display exception details
            System.out.println(ae);
        }
 
        finally {
           
            System.out.println("Inside finally block");
 
            // close the files irrespective of any exception
            System.out.println("Close files");
        }
    }
}
Producción

Open files
After dividing a and b ans is 9
Inside finally block
Close files

Publicación traducida automáticamente

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