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
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:
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:
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: