logo

Java beidzot bloķē

Java beidzot bloķē ir bloks, ko izmanto svarīga koda izpildei, piemēram, savienojuma slēgšanai utt.

Visbeidzot, Java bloks vienmēr tiek izpildīts neatkarīgi no tā, vai izņēmums tiek apstrādāts vai nē. Tāpēc tajā ir visi nepieciešamie paziņojumi, kas jādrukā neatkarīgi no tā, vai izņēmums ir noticis vai nē.

Pēdējais bloks seko try-catch blokam.

Visbeidzot bloka blokshēma

Java beidzot bloķē

Piezīme. Ja neveicat izņēmumu, pirms programmas pārtraukšanas JVM izpilda beigu bloku (ja tāds ir).

Kāpēc izmantot Java beidzot bloķēt?

  • beidzot Java bloku var izmantot, lai ievietotu satīrīt ' kodu, piemēram, faila aizvēršanu, savienojuma aizvēršanu utt.
  • Svarīgos izdrukas, kas jādrukā, var ievietot beigu blokā.

Beidzot Java izmantošana

Apskatīsim dažādus gadījumus, kad beidzot var izmantot Java bloku.

1. gadījums: ja nenotiek izņēmums

Apskatīsim zemāk redzamo piemēru, kur Java programma neizmet nekādu izņēmumu, un pēdējais bloks tiek izpildīts pēc mēģinājuma bloka.

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

Izvade:

Java beidzot bloķē

2. gadījums: ja notiek izņēmums, bet to neapstrādā uztveršanas bloks

Apskatīsim aizpildīšanas piemēru. Šeit kods rada izņēmumu, taču uztveršanas bloks to nevar apstrādāt. Neskatoties uz to, pēdējais bloks tiek izpildīts pēc mēģinājuma bloka un pēc tam programma tiek pārtraukta neparasti.

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

Izvade:

Java beidzot bloķē

3. gadījums: ja notiek izņēmums un to apstrādā nozvejas bloks

Piemērs:

Apskatīsim šādu piemēru, kur Java kods rada izņēmumu un uztveršanas bloks apstrādā izņēmumu. Vēlāk pēdējais bloks tiek izpildīts pēc try-catch bloka. Turklāt pārējais kods tiek izpildīts normāli.

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

Izvade:

Java beidzot bloķē

Noteikums: katram mēģinājuma blokam var būt nulle vai vairāk noķeršanas bloku, bet tikai viens bloks.

Piezīme. Pēdējais bloks netiks izpildīts, ja programma iziet (izsaucot System.exit() vai izraisot fatālu kļūdu, kas izraisa procesa pārtraukšanu).