logo

Java finalmente si blocca

Java finalmente si blocca è un blocco utilizzato per eseguire codice importante come chiudere la connessione, ecc.

Il blocco Java Java viene sempre eseguito indipendentemente dal fatto che un'eccezione venga gestita o meno. Pertanto, contiene tutte le istruzioni necessarie che devono essere stampate indipendentemente dal fatto che si verifichi o meno l'eccezione.

Il blocco infine segue il blocco try-catch.

Diagramma di flusso del blocco finale

Java finalmente si blocca

Nota: se non gestisci l'eccezione, prima di terminare il programma, JVM esegue infine il blocco (se presente).

Perché usare Java finalmente bloccare?

  • infine il blocco in Java può essere utilizzato per inserire ' ripulire ' codice come la chiusura di un file, la chiusura della connessione, ecc.
  • Le affermazioni importanti da stampare possono essere inserite nel blocco final.

Finalmente l'uso di Java

Vediamo i diversi casi in cui è possibile utilizzare Java final block.

Caso 1: quando non si verifica un'eccezione

Vediamo l'esempio seguente in cui il programma Java non genera alcuna eccezione e il blocco final viene eseguito dopo il blocco 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...'); } } 

Produzione:

Java finalmente si blocca

Caso 2: quando si verifica un'eccezione ma non viene gestita dal blocco catch

Vediamo l'esempio seguente. In questo caso il codice genera un'eccezione ma il blocco catch non è in grado di gestirla. Nonostante ciò, il bloccofinal viene eseguito dopo il blocco try e quindi il programma termina in modo anomalo.

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

Produzione:

Java finalmente si blocca

Caso 3: quando si verifica un'eccezione e viene gestita dal blocco catch

Esempio:

Vediamo l'esempio seguente in cui il codice Java lancia un'eccezione e il blocco catch gestisce l'eccezione. Successivamente viene eseguito il blocco finalmente dopo il blocco try-catch. Inoltre, anche il resto del codice viene eseguito normalmente.

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

Produzione:

Java finalmente si blocca

Regola: per ogni blocco try possono esserci zero o più blocchi catch, ma solo un blocco final.

Nota: il blocco final non verrà eseguito se il programma termina (chiamando System.exit() o causando un errore fatale che causa l'interruzione del processo).