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