Java konečne blok je blok používaný na spustenie dôležitého kódu, ako je zatvorenie spojenia atď.
Nakoniec blok Java sa vždy vykoná bez ohľadu na to, či sa výnimka spracuje alebo nie. Preto obsahuje všetky potrebné výpisy, ktoré je potrebné vytlačiť bez ohľadu na to, či sa výnimka vyskytne alebo nie.
Posledný blok nasleduje po bloku try-catch.
Vývojový diagram konečného bloku
Poznámka: Ak výnimku nespracujete, pred ukončením programu JVM vykoná posledný blok (ak existuje).
Prečo používať Java nakoniec blokovať?
- nakoniec blok v jazyku Java možno použiť na vloženie „ vyčistiť ' kód, ako je zatvorenie súboru, zatvorenie pripojenia atď.
- Dôležité výpisy, ktoré sa majú vytlačiť, je možné umiestniť do záverečného bloku.
Konečne použitie Javy
Pozrime sa na rôzne prípady, kedy je možné nakoniec použiť blok Java.
Prípad 1: Keď nenastane výnimka
Pozrime sa na príklad nižšie, kde program Java nevyvoláva žiadnu výnimku a posledný blok sa vykoná po bloku 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...'); } }
Výkon:
Prípad 2: Keď sa vyskytne výnimka, ale nie je spracovaná blokom catch
Pozrime sa na príklad plnenia. Tu kód vyvolá výnimku, ale blok catch ju nedokáže spracovať. Napriek tomu sa po bloku try vykoná posledný blok a potom sa program nenormálne ukončí.
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...'); } }
Výkon:
Prípad 3: Keď sa vyskytne výnimka a je spracovaná blokom catch
Príklad:
Pozrime sa na nasledujúci príklad, kde kód Java vyvolá výnimku a blok catch túto výnimku spracuje. Neskôr sa po bloku try-catch vykoná posledný blok. Ďalej, zvyšok kódu sa tiež vykonáva normálne.
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...'); } }
Výkon: