logo

Java konečne blok

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

Java konečne blok

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:

Java konečne blok

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:

Java konečne blok

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:

Java konečne blok

Pravidlo: Pre každý blok pokusu môže byť nula alebo viac blokov úlovkov, ale iba jeden blok.

Poznámka: Posledný blok sa nevykoná, ak sa program ukončí (buď volaním System.exit() alebo spôsobením fatálnej chyby, ktorá spôsobí prerušenie procesu).