logo

Обробка винятків у Java

  1. Обробка винятків
  2. Перевага обробки винятків
  3. Ієрархія класів винятків
  4. Типи винятків
  5. Приклад винятку
  6. Сценарії, коли може статися виняток

The Обробка винятків у Java є одним із могутніх механізм обробки помилок виконання щоб можна було підтримувати нормальний потік програми.

У цьому посібнику ми дізнаємося про винятки Java, їх типи та різницю між перевіреними та неперевіреними винятками.

центральна кнопка в css

Що таке винятки в Java?

Значення словника: Винятком є ​​ненормальний стан.

У Java винятком є ​​подія, яка порушує нормальний хід програми. Це об’єкт, який викидається під час виконання.

Що таке обробка винятків?

Обробка винятків — це механізм для обробки помилок виконання, таких як ClassNotFoundException, IOException, SQLException, RemoteException тощо.

Перевага обробки винятків

Основною перевагою обробки винятків є для підтримки нормального потоку програми . Виняток зазвичай порушує нормальний хід програми; ось чому нам потрібно обробляти винятки. Розглянемо сценарій:

 statement 1; statement 2; statement 3; statement 4; statement 5;//exception occurs statement 6; statement 7; statement 8; statement 9; statement 10; 

Припустімо, що в програмі на Java є 10 операторів і виняток виникає в операторі 5; решта коду не виконуватиметься, тобто оператори з 6 по 10 не виконуватимуться. Однак, коли ми виконуємо обробку винятків, решта операторів буде виконано. Ось чому ми використовуємо обробку винятків Java .

Чи ти знаєш?
  • Яка різниця між перевіреними та неперевіреними винятками?
  • Що відбувається за кодом int data=50/0;?
  • Навіщо використовувати кілька блоків catch?
  • Чи є можливість, коли блок finally не виконується?
  • Що таке розповсюдження винятків?
  • Яка різниця між ключовим словом throw і throws?
  • Які 4 правила використання обробки винятків із перевизначенням методу?

Ієрархія класів Java Exception

Клас java.lang.Throwable є кореневим класом ієрархії Java Exception, успадкованої двома підкласами: Exception і Error. Ієрархія класів Java Exception наведена нижче:

ієрархія обробки винятків

Типи винятків Java

В основному є два типи винятків: перевірені та неперевірені. Помилка вважається неперевіреним винятком. Однак, згідно з Oracle, існує три типи винятків, а саме:

  1. Перевірений виняток
  2. Неперевірений виняток
  3. Помилка
ієрархія обробки винятків

Різниця між перевіреними та неперевіреними винятками

1) Перевірений виняток

Класи, які безпосередньо успадковують клас Throwable, крім RuntimeException і Error, відомі як перевірені винятки. Наприклад, IOException, SQLException тощо. Перевірені винятки перевіряються під час компіляції.

2) Неперевірений виняток

Класи, які успадковують RuntimeException, відомі як неперевірені винятки. Наприклад, ArithmeticException, NullPointerException, ArrayIndexOutOfBoundsException тощо. Неперевірені винятки не перевіряються під час компіляції, але вони перевіряються під час виконання.

3) Помилка

Помилка невиправна. Деякими прикладами помилок є OutOfMemoryError, VirtualMachineError, AssertionError тощо.

Ключові слова винятків Java

Java надає п'ять ключових слів, які використовуються для обробки винятку. У наведеній нижче таблиці описано кожен.

Ключове словоопис
спробуватиКлючове слово 'try' використовується для вказівки блоку, де ми повинні розмістити код винятку. Це означає, що ми не можемо використовувати лише блок try. Після блоку try має слідувати catch або finally.
виловитиБлок catch використовується для обробки винятку. Йому має передувати блок try, що означає, що ми не можемо використовувати один блок catch. Пізніше за ним може послідувати остаточне блокування.
нарештіБлок finally використовується для виконання необхідного коду програми. Він виконується незалежно від того, обробляється виняток чи ні.
кинутиКлючове слово 'throw' використовується для створення винятку.
кидкиКлючове слово 'throws' використовується для оголошення винятків. Це вказує, що в методі може виникнути виняток. Це не створює винятків. Він завжди використовується з підписом методу.

Приклад обробки винятків Java

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

JavaExceptionExample.java

 public class JavaExceptionExample{ public static void main(String args[]){ try{ //code that may raise exception int data=100/0; }catch(ArithmeticException e){System.out.println(e);} //rest code of the program System.out.println('rest of the code...'); } } 
Перевірте зараз

Вихід:

 Exception in thread main java.lang.ArithmeticException:/ by zero rest of the code... 

У наведеному вище прикладі 100/0 викликає ArithmeticException, який обробляється блоком try-catch.

Поширені сценарії винятків Java

Наведено кілька сценаріїв, коли можуть виникнути неперевірені винятки. Вони такі:

1) Сценарій, у якому виникає ArithmeticException

Якщо ми ділимо будь-яке число на нуль, виникає ArithmeticException.

 int a=50/0;//ArithmeticException 

2) Сценарій, у якому виникає виняткова ситуація NullPointerException

Якщо ми маємо нульове значення в будь-якому змінна , виконання будь-якої операції над змінною викликає виключення NullPointerException.

 String s=null; System.out.println(s.length());//NullPointerException 

3) Сценарій, у якому виникає NumberFormatException

Якщо форматування будь-якої змінної або числа не відповідає, це може призвести до NumberFormatException. Припустимо, ми маємо a рядок змінна, яка має символи; перетворення цієї змінної в цифру спричинить виключення NumberFormatException.

 String s='abc'; int i=Integer.parseInt(s);//NumberFormatException 

4) Сценарій, у якому виникає ArrayIndexOutOfBoundsException

Коли масив перевищує свій розмір, виникає виключення ArrayIndexOutOfBoundsException. можуть бути інші причини виникнення ArrayIndexOutOfBoundsException. Розглянемо наступні твердження.

 int a[]=new int[5]; a[10]=50; //ArrayIndexOutOfBoundsException 

Індекс винятків Java

  1. Блок Java Try-Catch
  2. Java Multiple Catch Block
  3. Java Nested Try
  4. Java Finally Block
  5. Java Throw Keyword
  6. Поширення винятків Java
  7. Java викидає ключове слово
  8. Java Throw проти Throws
  9. Java Final проти Finally проти Finalize
  10. Обробка винятків Java із перевизначенням методу
  11. Спеціальні винятки Java