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