logo

Java blokkeert eindelijk

Java blokkeert eindelijk is een blok dat wordt gebruikt om belangrijke code uit te voeren, zoals het sluiten van de verbinding, enz.

Het Java-eindelijk-blok wordt altijd uitgevoerd, ongeacht of er een uitzondering wordt afgehandeld of niet. Daarom bevat het alle benodigde instructies die moeten worden afgedrukt, ongeacht of er een uitzondering optreedt of niet.

Het laatste blok volgt op het try-catch-blok.

Stroomdiagram van uiteindelijk blok

Java blokkeert eindelijk

Opmerking: als u de uitzondering niet afhandelt, voert JVM, voordat u het programma beëindigt, uiteindelijk een blok uit (indien aanwezig).

Waarom Java eindelijk gebruiken?

  • eindelijk kan blok in Java worden gebruikt om ' opruimen ' code zoals het sluiten van een bestand, het sluiten van de verbinding, enz.
  • De belangrijke uitspraken die moeten worden afgedrukt, kunnen in het laatste blok worden geplaatst.

Eindelijk Java gebruiken

Laten we eens kijken naar de verschillende gevallen waarin Java uiteindelijk kan worden gebruikt.

Geval 1: Wanneer er geen uitzondering optreedt

Laten we het onderstaande voorbeeld bekijken waarin het Java-programma geen enkele uitzondering genereert en het definitieve blok wordt uitgevoerd na het try-blok.

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

Uitgang:

Java blokkeert eindelijk

Geval 2: Wanneer er een uitzondering optreedt, maar deze niet wordt afgehandeld door het catch-blok

Laten we het volgende voorbeeld bekijken. Hier genereert de code een uitzondering, maar het catch-blok kan dit niet aan. Desondanks wordt het definitieve blok na het try-blok uitgevoerd en eindigt het programma op abnormale wijze.

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

Uitgang:

Java blokkeert eindelijk

Geval 3: Wanneer er een uitzondering optreedt en deze wordt afgehandeld door het catch-blok

Voorbeeld:

Laten we het volgende voorbeeld bekijken waarin de Java-code een uitzondering genereert en het catch-blok de uitzondering afhandelt. Later wordt het definitieve blok uitgevoerd na het try-catch-blok. Verder wordt de rest van de code ook normaal uitgevoerd.

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

Uitgang:

Java blokkeert eindelijk

Regel: Voor elk try-blok kunnen er nul of meer catch-blokken zijn, maar slechts één final-blok.

Opmerking: Het definitieve blok zal niet worden uitgevoerd als het programma wordt afgesloten (ofwel door System.exit() aan te roepen, ofwel door een fatale fout te veroorzaken waardoor het proces wordt afgebroken).