logo

Java w końcu blokuje

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

Java w końcu blokuje

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:

Java w końcu blokuje

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:

Java w końcu blokuje

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:

Java w końcu blokuje

Reguła: Dla każdego bloku try może być zero lub więcej bloków catch, ale tylko jeden blok final.

Uwaga: Blok last nie zostanie wykonany, jeśli program zakończy działanie (albo przez wywołanie System.exit(), albo przez spowodowanie błędu krytycznego powodującego przerwanie procesu).