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