Java finalment bloqueja és un bloc utilitzat per executar codi important com tancar la connexió, etc.
Finalment, el bloc Java sempre s'executa tant si es gestiona una excepció com si no. Per tant, conté totes les declaracions necessàries que s'han d'imprimir independentment de l'excepció que es produeixi o no.
El bloc final segueix el bloc try-catch.
Diagrama de flux del bloc finally
Nota: Si no gestioneu l'excepció, abans de finalitzar el programa, JVM executarà finalment el bloc (si n'hi ha).
Per què utilitzar Java finalment bloquejar?
- finalment el bloc a Java es pot utilitzar per posar ' netejar ', com ara tancar un fitxer, tancar la connexió, etc.
- Les declaracions importants a imprimir es poden col·locar al bloc finally.
Ús de Java finalment
Vegem els diferents casos en què Java finalment es pot utilitzar el bloc.
Cas 1: quan no es produeix una excepció
Vegem l'exemple següent on el programa Java no llança cap excepció i el bloc final s'executa després del bloc try.
TestFinallyBlock.java
class TestFinallyBlock { public static void main(String args[]){ try{ //below code do not throw any exception int data=25/5; System.out.println(data); } //catch won't be executed catch(NullPointerException e){ System.out.println(e); } //executed regardless of exception occurred or not finally { System.out.println('finally block is always executed'); } System.out.println('rest of phe code...'); } }
Sortida:
Cas 2: quan es produeix una excepció però no la gestiona el bloc catch
Vegem l'exemple següent. Aquí, el codi llança una excepció, però el bloc catch no la pot gestionar. Malgrat això, el bloc finally s'executa després del bloc try i després el programa finalitza de manera anormal.
TestFinallyBlock1.java
public class TestFinallyBlock1{ public static void main(String args[]){ try { System.out.println('Inside the try block'); //below code throws divide by zero exception int data=25/0; System.out.println(data); } //cannot handle Arithmetic type exception //can only accept Null Pointer type exception catch(NullPointerException e){ System.out.println(e); } //executes regardless of exception occured or not finally { System.out.println('finally block is always executed'); } System.out.println('rest of the code...'); } }
Sortida:
Cas 3: quan es produeix una excepció i la gestiona el bloc catch
Exemple:
Vegem l'exemple següent on el codi Java llança una excepció i el bloc catch gestiona l'excepció. Més tard, el bloc finally s'executa després del bloc try-catch. A més, la resta del codi també s'executa normalment.
TestFinallyBlock2.java
public class TestFinallyBlock2{ public static void main(String args[]){ try { System.out.println('Inside try block'); //below code throws divide by zero exception int data=25/0; System.out.println(data); } //handles the Arithmetic Exception / Divide by zero exception catch(ArithmeticException e){ System.out.println('Exception handled'); System.out.println(e); } //executes regardless of exception occured or not finally { System.out.println('finally block is always executed'); } System.out.println('rest of the code...'); } }
Sortida: