Java konečně zablokovat je blok používaný ke spuštění důležitého kódu, jako je uzavření spojení atd.
Java nakonec blok se vždy provede, ať už je výjimka zpracována nebo ne. Obsahuje tedy všechny potřebné výpisy, které je třeba vytisknout bez ohledu na to, zda výjimka nastane či nikoliv.
Poslední blok následuje po bloku try-catch.
Vývojový diagram konečného bloku
Poznámka: Pokud výjimku nezpracujete, JVM před ukončením programu provede konečný blok (pokud existuje).
Proč používat nakonec blokování Javy?
- konečně blok v Javě lze použít k vložení ' úklid ' kód, jako je uzavření souboru, ukončení připojení atd.
- Důležité výpisy k tisku lze umístit do bloku Závěr.
Konečně použití Javy
Podívejme se na různé případy, kdy lze nakonec použít blok Java.
Případ 1: Když nedojde k výjimce
Podívejme se na níže uvedený příklad, kde program Java nevyvolá žádnou výjimku a po bloku try se provede blok konečně.
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ýstup:
Případ 2: Když dojde k výjimce, která však není zpracována blokem catch
Podívejme se na příklad plnění. Zde kód vyvolá výjimku, ale blok catch ji nedokáže zpracovat. Navzdory tomu je po bloku try vykonán závěrečný blok a program se pak abnormálně 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ýstup:
Případ 3: Když dojde k výjimce a je zpracována blokem catch
Příklad:
Podívejme se na následující příklad, kde kód Java vyvolá výjimku a blok catch tuto výjimku zpracovává. Později se po bloku try-catch provede blok final. Kromě toho se zbytek kódu také provádí normálně.
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ýstup: