Java w końcu blokuje to blok używany do wykonania ważnego kodu, takiego jak zamknięcie połączenia itp.
Blok Java Final jest zawsze wykonywany niezależnie od tego, czy obsłużony zostanie wyjątek, czy nie. Dlatego zawiera wszystkie niezbędne instrukcje, które należy wydrukować niezależnie od tego, czy wyjątek wystąpi, czy nie.
Blok last następuje po bloku try-catch.
Schemat blokowy finalnego bloku
Uwaga: Jeśli nie obsłużysz wyjątku, przed zakończeniem programu JVM wykona w końcu blok (jeśli istnieje).
Po co w końcu używać Java?
- w końcu blok w Javie może zostać użyty do umieszczenia „ posprzątać ' kod, taki jak zamknięcie pliku, zamknięcie połączenia itp.
- Ważne instrukcje, które mają zostać wydrukowane, można umieścić w bloku last.
Wreszcie użycie Javy
Przyjrzyjmy się różnym przypadkom, w których można ostatecznie zastosować blok Java.
Przypadek 1: Gdy nie występuje wyjątek
Zobaczmy poniższy przykład, w którym program Java nie zgłasza żadnego wyjątku, a blok last jest wykonywany po bloku try.
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...'); } }
Wyjście:
Przypadek 2: Gdy wystąpił wyjątek, ale nie został obsłużony przez blok catch
Zobaczmy przykład wypełnienia. W tym przypadku kod zgłasza wyjątek, jednak blok catch nie może go obsłużyć. Mimo to po bloku try wykonywany jest blok Final, po czym program kończy się nieprawidłowo.
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...'); } }
Wyjście:
Przypadek 3: Gdy wystąpi wyjątek i zostanie on obsłużony przez blok catch
Przykład:
Zobaczmy następujący przykład, w którym kod Java zgłasza wyjątek, a blok catch obsługuje wyjątek. Później blok Final jest wykonywany po bloku try-catch. Co więcej, reszta kodu jest również wykonywana normalnie.
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...'); } }
Wyjście: