logo

Java končno blokirana

Java končno blokirana je blok, ki se uporablja za izvajanje pomembne kode, kot je zapiranje povezave itd.

Končni blok Java se vedno izvede ne glede na to, ali je obravnavana izjema ali ne. Zato vsebuje vse potrebne stavke, ki jih je treba natisniti ne glede na to, ali se izjema pojavi ali ne.

Blok finally sledi bloku try-catch.

Diagram poteka končnega bloka

Java končno blokirana

Opomba: če ne obravnavate izjeme, JVM pred zaključkom programa izvede končni blok (če obstaja).

Zakaj uporabljati Java finally block?

  • končno blok v Javi se lahko uporabi za postavitev ' pospravi ' kodo, kot je zapiranje datoteke, zapiranje povezave itd.
  • Pomembne izjave, ki jih želite natisniti, lahko postavite v končni blok.

Končno uporaba Jave

Oglejmo si različne primere, v katerih je mogoče uporabiti končni blok Java.

Primer 1: Ko do izjeme ne pride

Oglejmo si spodnji primer, kjer program Java ne vrže nobene izjeme in se blok finally izvede za blokom 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...'); } } 

Izhod:

Java končno blokirana

Primer 2: Ko pride do izjeme, vendar je blok catch ne obravnava

Oglejmo si naslednji primer. Tukaj koda vrže izjemo, vendar blok catch tega ne more obravnavati. Kljub temu se blok finally izvede za blokom try in nato se program nenormalno zaključi.

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

Izhod:

Java končno blokirana

Primer 3: Ko pride do izjeme in jo obravnava blok catch

primer:

Oglejmo si naslednji primer, kjer koda Java vrže izjemo in blok catch obravnava izjemo. Kasneje se blok finally izvede za blokom try-catch. Poleg tega se preostala koda izvaja normalno.

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

Izhod:

Java končno blokirana

Pravilo: Za vsak poskusni blok je lahko nič ali več blokov catch, vendar samo en končni blok.

Opomba: Blok finally se ne bo izvedel, če se program zapre (bodisi s klicem System.exit() bodisi s povzročitvijo usodne napake, ki povzroči prekinitev procesa).