logo

Java blokerer endelig

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

Java blokerer endelig

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:

Java blokerer endelig

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:

Java blokerer endelig

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:

Java blokerer endelig

Regel: For hver forsøgsblok kan der være nul eller flere catch-blokke, men kun en endelig blok.

Bemærk: Den endelige blokering vil ikke blive udført, hvis programmet afsluttes (enten ved at kalde System.exit() eller ved at forårsage en fatal fejl, der får processen til at afbryde).