Рекомендуємо, 2023

Вибір Редакції

Різниця між перевіреним і неперевіреним виключенням в Java

"Throwable" є батьківським класом класів Error and Exception. Клас “RuntimeException” та його підкласи, клас “Помилка” та його дочірні класи - це “Неперевірені винятки”, тоді як інші підкласи класу “Виняток”, крім “RuntimeException”, є перевіреними винятками. Основна відмінність між перевіреним і неперевіреним виключенням полягає в тому, що перевірені виключення перевіряються компілятором, тоді як компілятор не перевіряє неперевірені виключення .

Давайте обговоримо інші відмінності між перевіреними та неперевіреними винятками за допомогою діаграми порівняння.

Діаграма порівняння

Основа для порівнянняПеревірена виключенняНеперевірений виняток
ОсновнийКомпілятор перевіряє перевірене виключення.Компілятор не перевіряє виняток, що не перевіряється.
Клас виняткуКрім класу "RuntimeException" всі дочірні класи класу "Exception", і клас "Error" і його дочірні класи є Checked Exception.Клас "RuntimeException" і його дочірні класи - це "Неперевірені винятки".
ОбробкаЯкщо ми не обробляємо перевірене виключення, то об'єкти компілятора.Навіть якщо ми не обробляємо неперевірений виняток, компілятор не заперечує.
КомпіляціяПрограма не компілює, якщо в програмному коді існує невиконана перевірена виключення.Програма успішно компілюється, навіть якщо в коді програми існує необроблений неперевірений виняток.

Визначення виключеного виключення

Перевірені виключення - це ті винятки, які перевіряються компілятором для плавного виконання програми. Компілятор перевіряє, чи може програма обробляти перевірене виключення чи ні. Якщо код не може обробити виняток, виникає помилка компіляції. Всі підкласи класу "Виняток", крім класу RuntimeException, є перевіреними виключеннями.
Розглянемо перевірений виняток з прикладом.

 import java.io. *; Приклад класу {public static void main (String args []) {FileInputStream fis = null; fis = new FileInputStream ("B: / файл_файлу.txt"); // Цей конструктор FileInputStream (назва файлу файлу) викидає файл FileNotFoundException, який є перевіреним виключенням. int k; while ((k = fis.read ())! = -1) {// Метод read () класу FileInputStream також викидає перевірений виняток: IOException. System.out.print ((char) k); } fis.close (); // Метод close () закриває вхідний потік файлу, який він викидає. }} 

У наведеному вище коді ми намагаємося відкривати, читати та відображати вміст файлу. Може трапитися так, що файл відсутній, тоді виникне виклик FileNotFoundException, який є перевіреним виключенням. Якщо перевірене виключення не обробляється, то компілятор не дозволить плавно скомпілювати програму. Він покаже помилку часу компіляції. Таким чином, для плавної компіляції, перевірений виняток повинен бути виявлений або оголошений, щоб бути викинутим.

Визначення неперевіреного виключення

Неперевірені винятки - це ті винятки, які не перевіряються компілятором. Компілятор успішно компілює програму, навіть якщо винятки не обробляються кодом. Клас “Помилка” та його дочірні класи, клас “Час виконання” та його підкласи - це неперевірені виключення.

Подивимося приклад неперевіреного винятку.

 Приклад класу {public static void main (String args []) {int arr [] = {1, 2, 3, 4, 5}; System.out.println (обр. [7]); // ArrayIndexOutOfBoundsException. }} 

У наведеному вище коді можна побачити, що існує виключення ArrayIndexOutOfBoundsException, оскільки я намагаюся отримати доступ до елемента, який не існує. Оскільки це виключення неперевірене, помилка часу компіляції не відбудеться, і файл буде скомпільований без помилок. Але програма не буде виконуватися, поки не буде оброблено виняток. Таким чином, для плавного виконання, винятки повинні бути виявлені або оголошені, щоб бути викинуті

Ключові відмінності між виключеним та неперевіреним виключенням

  1. Перевірені виключення знають компілятор, тоді як неперевірені виключення не знають компілятора.
  2. Крім класу RuntimeException і Error, всі класи перевіряються винятково. З іншого боку, класи RuntimeException і Error є неперевіреними винятками.
  3. Якщо перевірені виключення не обробляються кодом, то об'єкт компілятора. З іншого боку, якщо ми не обробляємо неперевірені виключення в коді, компілятор не заперечує.
  4. Якщо в коді виникають перевірені виключення, код не буде компілюватися, тоді як, навіть якщо неперевірені виключення не обробляються кодом, компілятор ще компілює код.

Примітка :

Під час виконання виконується виключення як перевірено, так і неперевірене. Вони перевіряються або відключаються компілятором лише під час компіляції.

Висновок:

Для того, щоб програма могла виконуватися плавно, потрібно обробляти як перевірені, так і неперевірені винятки.

Top