logo

„Java“ pagaliau blokuoja

„Java“ pagaliau blokuoja yra blokas, naudojamas svarbiam kodui vykdyti, pavyzdžiui, uždaryti ryšį ir pan.

Galiausiai „Java“ blokas visada vykdomas, nesvarbu, ar išimtis tvarkoma, ar ne. Todėl jame yra visi būtini teiginiai, kuriuos reikia spausdinti, neatsižvelgiant į tai, ar išimtis įvyksta, ar ne.

Paskutinis blokas seka po try-catch bloko.

Galiausiai bloko schema

„Java“ pagaliau blokuoja

Pastaba: jei netvarkote išimties, prieš nutraukiant programą JVM pagaliau įvykdo bloką (jei toks yra).

Kodėl naudoti Java pagaliau blokuoti?

  • pagaliau blokas Java gali būti naudojamas įdėti Išvalyti ' kodas, pvz., failo uždarymas, ryšio nutraukimas ir kt.
  • Svarbūs teiginiai, kuriuos reikia spausdinti, gali būti dedami į galutinį bloką.

Pagaliau „Java“ naudojimas

Pažiūrėkime įvairius atvejus, kai pagaliau galima naudoti „Java“ bloką.

1 atvejis: kai neįvyksta išimtis

Pažiūrėkime žemiau pateiktą pavyzdį, kur Java programa nedaro jokios išimties, o galiausiai blokas vykdomas po try bloko.

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

Išvestis:

„Java“ pagaliau blokuoja

2 atvejis: kai įvyksta išimtis, bet jos neapdoroja gaudymo blokas

Pažiūrėkime užpildymo pavyzdį. Čia kodas pateikia išimtį, tačiau gaudymo blokas negali jos apdoroti. Nepaisant to, paskutinis blokas vykdomas po trynimo bloko, o tada programa nutraukiama neįprastai.

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

Išvestis:

„Java“ pagaliau blokuoja

3 atvejis: kai įvyksta išimtis ir ją tvarko gaudymo blokas

Pavyzdys:

Pažiūrėkime šį pavyzdį, kuriame „Java“ kodas meta išimtį, o gaudymo blokas apdoroja išimtį. Vėliau galutinis blokas vykdomas po try-catch bloko. Be to, likusi kodo dalis taip pat vykdoma įprastai.

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

Išvestis:

„Java“ pagaliau blokuoja

Taisyklė: kiekvienam bandymo blokui gali būti nulis arba daugiau gaudymo blokų, bet tik vienas galutinis blokas.

Pastaba: Galutinis blokas nebus vykdomas, jei programa išeina (arba iškviečiant System.exit() arba sukeliant mirtiną klaidą, dėl kurios procesas nutraukiamas).