logo

Java konečně zablokovat

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

Java konečně zablokovat

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:

Java konečně zablokovat

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:

Java konečně zablokovat

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:

Java konečně zablokovat

Pravidlo: Pro každý blok try může být nula nebo více bloků catch, ale pouze jeden blok.

Poznámka: Poslední blok nebude proveden, pokud se program ukončí (buď voláním System.exit() nebo způsobením závažné chyby, která způsobí přerušení procesu).