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
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:
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:
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: