logo

Java végre blokkolja

Java végre blokkolja egy olyan blokk, amely fontos kód végrehajtására szolgál, például a kapcsolat bezárására stb.

A Java végül blokk mindig végrehajtásra kerül, függetlenül attól, hogy a kivételt kezelték-e vagy sem. Ezért tartalmazza az összes szükséges utasítást, amelyet ki kell nyomtatni, függetlenül attól, hogy a kivétel előfordul-e vagy sem.

Az utolsó blokk a try-catch blokkot követi.

A végül blokk folyamatábrája

Java végre blokkolja

Megjegyzés: Ha nem kezeli a kivételt, a program leállítása előtt a JVM végül végrehajtja a blokkot (ha van ilyen).

Miért használjuk a Java-t végül blokkolni?

  • végül a blokk Java-ban használható a ' takarítás ' kódot, például egy fájl bezárását, kapcsolat bezárását stb.
  • A kinyomtatandó fontos állítások a végleges blokkba helyezhetők.

Végül a Java használata

Lássuk a különböző eseteket, amikor a Java végre blokkolható.

1. eset: Ha nem történik kivétel

Nézzük meg az alábbi példát, ahol a Java program nem dob kivételt, és a try blokk után végre kell hajtani az utolsó blokkot.

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...'); } } 

Kimenet:

Java végre blokkolja

2. eset: Ha kivétel történik, de a fogási blokk nem kezeli

Lássuk a következő példát. Itt a kód kivételt dob, de a catch blokk nem tudja kezelni. Ennek ellenére a try-blokk után a végső mondat végrehajtásra kerül, majd a program rendellenesen leáll.

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...'); } } 

Kimenet:

Java végre blokkolja

3. eset: Ha kivétel történik, és azt a catch blokk kezeli

Példa:

Lássuk a következő példát, ahol a Java kód kivételt dob, és a catch blokk kezeli a kivételt. Később a try-catch blokk után végre kell hajtani a végső blokkot. Továbbá a kód többi része is normálisan lefut.

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...'); } } 

Kimenet:

Java végre blokkolja

Szabály: Minden próbálkozás blokkhoz nulla vagy több fogási blokk tartozhat, de végül csak egy blokk.

Megjegyzés: Az utolsó blokk nem kerül végrehajtásra, ha a program kilép (akár a System.exit() meghívásával, akár a folyamat megszakítását okozó végzetes hiba okozásával).