logo

Java blokkerer endelig

Java blokkerer endelig er en blokk som brukes til å utføre viktig kode som å lukke forbindelsen osv.

Java endelig blokk utføres alltid uansett om et unntak håndteres eller ikke. Derfor inneholder den alle nødvendige uttalelser som må skrives ut uavhengig av unntaket eller ikke.

Den endelige blokken følger try-catch-blokken.

Flytskjema for endelig blokk

Java blokkerer endelig

Merk: Hvis du ikke håndterer unntaket, før du avslutter programmet, kjører JVM endelig blokk (hvis noen).

Hvorfor bruke Java endelig blokkere?

  • endelig blokk i Java kan brukes til å sette ' rydde opp ' kode som å lukke en fil, lukke tilkoblingen osv.
  • De viktige uttalelsene som skal skrives ut kan plasseres i den endelige blokken.

Endelig bruk av Java

La oss se de forskjellige tilfellene der Java endelig blokkering kan brukes.

Tilfelle 1: Når et unntak ikke forekommer

La oss se eksemplet nedenfor der Java-programmet ikke gir noe unntak, og den endelige blokken utføres etter prøveblokken.

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

Produksjon:

Java blokkerer endelig

Tilfelle 2: Når et unntak oppstår, men ikke håndteres av fangblokken

La oss se det fyllende eksempelet. Her gir koden et unntak, men catch-blokken kan ikke håndtere det. Til tross for dette utføres den endelige blokkeringen etter prøveblokken og deretter avsluttes programmet unormalt.

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

Produksjon:

Java blokkerer endelig

Tilfelle 3: Når et unntak oppstår og håndteres av fangblokken

Eksempel:

La oss se følgende eksempel der Java-koden kaster et unntak og catch-blokken håndterer unntaket. Senere utføres finally-blokken etter try-catch-blokken. Videre blir resten av koden også utført normalt.

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

Produksjon:

Java blokkerer endelig

Regel: For hver forsøksblokk kan det være null eller flere fangstblokker, men bare en endelig blokk.

Merk: Den endelige blokkeringen vil ikke bli utført hvis programmet avsluttes (enten ved å kalle System.exit() eller ved å forårsake en fatal feil som får prosessen til å avbryte).