Довідники Java try catch

Що таке try catch в Java?

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

Припустимо, що ви розробили програму «Текстовий редактор». У програмі користувач може створити новий файл, вписати в нього дані і зберегти файл у системі.


Якщо код прописаний коректно, жодних помилок не виникатиме. Але давайте уявимо ситуацію, що користувач відкрив редактор, відкрив потрібний файл, записав у нього дані, далі вручну видалив файл із комп'ютера і потім спробував зберегти файл через вашу програму.


При такому розкладі у вас буде помилка, яка зламає програму і відіб'є будь-яке бажання у користувача працювати у вашій програмі. 


Виходить, виняток - це помилка, що виникає в ході роботи самої програми. Відслідковувати такі помилки за допомогою умовних операторів не завжди можливо, адже програма вже запущена, поведінка користувача нам невідомо заздалегідь, а значить «ловити» помилку нам потрібна в момент її створення.


Відлов помилок

Для вищеописаного випадку потрібна конструкція try catch для вилову помилок у момент їх створення. 


За допомогою даної конструкції ви можете відстежувати помилки різних форматів та подій. Можна відстежити неправильне відкриття файлу, можна відстежити неправильне підключення класу, можна відстежити неправильне написання змінної чи функції, та чого там, можна відстежити навіть розподіл чисел на нуль!


Реалізації конструкції try catch

Для додавання відстеження помилок можна прописати наступний код:

try { // У блоці try ми намагаємося виконати будь-який код
// У нашому випадку виконуємо поділ,
// хоча також можна прописати відкриття файлів, створення об'єкта на основі класу і так далі
System.out.println(something / variable);
} catch(ArithmeticException e) { // Вказуємо клас з помилкою
// Оскільки ми виконували математичні дії, то клас з помилкою ArithmeticException

// Виводимо текст з помилкою
System.out.println("Текст помилки: " + e);
}

У коді вище наведено дуже простий приклад використання винятків. Не звертайте увагу на його простоту, тому що головне це розглянути загальну конструкцію блоку try catch.


При використанні такої конструкції, яка б помилка не вийшла в ході програми, сама програма працювати не перестане і користувач не одержати поганий досвід у її використанні.


Якщо необхідно відстежити кілька класів з помилками, можна додати кілька блоків catch. Всі вони додаються один під одним так само, як в умовних операторах. 


Конструкція finally

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


Така конструкція може бути зручною у разі роботи з файлами, коли нам не важливо вийшла чи ні помилка, але нам важливо обов'язково закрити файл.

Коментарі
Додати коментар

Поки що коментарів немає