logo

În cele din urmă, Java se blochează

În cele din urmă, Java se blochează este un bloc folosit pentru a executa cod important, cum ar fi închiderea conexiunii etc.

În cele din urmă, blocul Java este întotdeauna executat indiferent dacă o excepție este gestionată sau nu. Prin urmare, conține toate declarațiile necesare care trebuie tipărite, indiferent dacă există sau nu excepția.

Blocul final urmează blocul try-catch.

Organigrama finally block

În cele din urmă, Java se blochează

Notă: Dacă nu gestionați excepția, înainte de a termina programul, JVM execută în sfârșit blocul (dacă există).

De ce să folosești Java în sfârșit bloc?

  • în sfârșit, bloc în Java poate fi folosit pentru a pune „ curăță ', cum ar fi închiderea unui fișier, închiderea conexiunii etc.
  • Declarațiile importante de tipărit pot fi plasate în blocul final.

Utilizarea Java în sfârșit

Să vedem diferitele cazuri în care Java poate fi folosit în sfârșit.

Cazul 1: Când nu apare o excepție

Să vedem exemplul de mai jos în care programul Java nu aruncă nicio excepție, iar blocul final este executat după blocul 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...'); } } 

Ieșire:

În cele din urmă, Java se blochează

Cazul 2: Când apare o excepție, dar nu este tratată de blocul catch

Să vedem exemplul de completare. Aici, codul aruncă o excepție, dar blocul catch nu o poate gestiona. În ciuda acestui fapt, blocul final este executat după blocul try și apoi programul se termină 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...'); } } 

Ieșire:

În cele din urmă, Java se blochează

Cazul 3: Când apare o excepție și este gestionată de blocul catch

Exemplu:

Să vedem următorul exemplu în care codul Java aruncă o excepție și blocul catch se ocupă de excepție. Mai târziu, blocul final este executat după blocul try-catch. Mai mult, restul codului este, de asemenea, executat normal.

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

Ieșire:

În cele din urmă, Java se blochează

Regula: Pentru fiecare bloc de încercare pot exista zero sau mai multe blocuri catch, dar numai un bloc final.

Notă: Blocul final nu va fi executat dacă programul se iese (fie prin apelarea System.exit(), fie prin cauzarea unei erori fatale care determină întreruperea procesului).