logo

Java остаточно заблокувати

Java остаточно заблокувати це блок, який використовується для виконання важливого коду, такого як закриття з’єднання тощо.

Блок Java finally завжди виконується незалежно від того, обробляється виняток чи ні. Таким чином, він містить усі необхідні оператори, які потрібно надрукувати незалежно від того, виникне виняток чи ні.

Блок finally слідує за блоком try-catch.

Блок-схема остаточного блоку

Java остаточно заблокувати

Примітка. Якщо ви не обробляєте виняток, перед завершенням програми JVM виконує остаточний блок (якщо такий є).

Навіщо використовувати Java finally block?

  • блок finally в Java можна використовувати для розміщення ' прибирати ' код, наприклад закриття файлу, закриття з'єднання тощо.
  • Важливі заяви, які потрібно надрукувати, можна розмістити в блоці finally.

Нарешті використання Java

Давайте розглянемо різні випадки, коли можна використовувати блок Java finally.

Випадок 1: коли виключення не відбувається

Давайте розглянемо наведений нижче приклад, де програма Java не створює жодних винятків, а блок finally виконується після блоку 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...'); } } 

Вихід:

Java остаточно заблокувати

Випадок 2: коли виникає виняток, але блок catch не обробляє його

Давайте подивимося на наступний приклад. Тут код створює виняток, однак блок catch не може його обробити. Незважаючи на це, блок finally виконується після блоку try, а потім програма завершує роботу аномально.

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

Вихід:

Java остаточно заблокувати

Випадок 3: коли виникає виняткова ситуація, яка обробляється блоком catch

приклад:

Давайте розглянемо наступний приклад, де код Java створює виняток, а блок catch обробляє виняток. Пізніше блок finally виконується після блоку try-catch. Крім того, решта коду також виконується нормально.

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

Вихід:

Java остаточно заблокувати

Правило: для кожного блоку try може бути нуль або більше блоків catch, але лише один блок finally.

Примітка: блок finally не буде виконано, якщо програма завершить роботу (чи через виклик System.exit(), чи через спричинення фатальної помилки, яка призведе до переривання процесу).