Java blokerer endelig er en blok, der bruges til at udføre vigtig kode, såsom at lukke forbindelsen osv.
Java endelig blok udføres altid uanset om en undtagelse håndteres eller ej. Derfor indeholder den alle de nødvendige udsagn, der skal udskrives, uanset om undtagelsen forekommer eller ej.
Den endelige blok følger try-catch blokken.
Flowchart af endelig blok
Bemærk: Hvis du ikke håndterer undtagelsen, udfører JVM, før programmet afsluttes, endelig blok (hvis nogen).
Hvorfor bruge Java endelig blokere?
- endelig blok i Java kan bruges til at sætte ' Ryd op ' kode såsom lukning af en fil, lukning af forbindelse osv.
- De vigtige udsagn, der skal udskrives, kan placeres i den endelige blok.
Brug af Java endelig
Lad os se de forskellige tilfælde, hvor Java endelig blokering kan bruges.
Case 1: Når en undtagelse ikke forekommer
Lad os se nedenstående eksempel, hvor Java-programmet ikke kaster nogen undtagelse, og den endelige blok udføres efter try-blokken.
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...'); } }
Produktion:
Tilfælde 2: Når en undtagelse opstår, men ikke håndteres af catch-blokken
Lad os se det fyldestgørende eksempel. Her giver koden en undtagelse, men catch-blokken kan ikke håndtere det. På trods af dette udføres den endelige blok efter prøveblokken, og derefter afsluttes 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...'); } }
Produktion:
Case 3: Når en undtagelse opstår og håndteres af catch-blokken
Eksempel:
Lad os se følgende eksempel, hvor Java-koden kaster en undtagelse, og catch-blokken håndterer undtagelsen. Senere udføres finally-blokken efter try-catch-blokken. Yderligere udføres resten af koden også 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...'); } }
Produktion: