#14 – Обробка винятків. Конструкція "try - except"
Відеоурок
Що таке виняток?
Припустимо, ви розробили програму «Текстовий редактор». У програмі користувач може створити новий файл, вписати дані і далі зберегти файл у системі.
Якщо код прописаний коректно, жодних помилок виникати не буде. Але давайте уявимо ситуацію, що користувач відкрив редактор, відкрив потрібний файл, записав у нього дані, далі вручну видалив файл з комп'ютера і спробував зберегти файл через вашу програму.
При такому розкладі ви матимете помилку, яка зламає програму і відіб'є будь-яке бажання у користувача працювати у вашій програмі.
Отже, виняток – це помилка, що виникає під час роботи самої програми. Відслідковувати такі помилки за допомогою умовних операторів не завжди можливо, адже програма вже запущена, поведінка користувача нам невідомо заздалегідь, а отже, і «ловити» помилку нам потрібно в момент її створення.
Вилов помилок
Для вищеописаного випадку потрібна конструкція try except для вилову помилок в момент їх створення.
За допомогою даної конструкції ви можете відстежувати помилки різних форматів та подій. Можна відстежити неправильне відкриття файлу, можна відстежити неправильне підключення класу, можна відстежити неправильне написання змінної або функції, та чого там, можна відстежити навіть ділення чисел на нуль!
Реалізації конструкції try except
Для додавання відстеження помилок можна прописати наступний код:
try: # Пробуємо щось зробити
k = 1 / 0 # Поділ на нуль
except ArithmeticError: # Відслідковуємо на арифметичну помилку
print ("Знайдена помилка") # Ми знайшли помилку
k = 0 # Наша змінна тепер дорівнюватиме 0
print(k) # Просто виводимо зміннуУ коді вище наведено дуже простий приклад використання винятків. Не звертайте увагу на його простоту, тому що головне це розглянути загальну конструкцію блоку try except.
При використанні такої конструкції, яка б помилка не вийшла в ході програми, сама програма працювати не перестане і користувач не отримати поганий досвід у її використанні.
Якщо потрібно відстежити кілька класів з помилками, можна додати кілька блоків except. Всі вони додаються один під одним так само, як і в умовних операторах.
Вихідний код
Весь код буде доступний після підписки на проект! Завдання до уроку
Необхідно оформити передплату на проект, щоб отримати доступ до всіх домашніх завдань
Велике завдання за курсом
Вам необхідно оформити передплату на сайті, щоб мати доступ до всіх великих завдань. У завдання входить методика рішення, а також готовий проект з відповіддю до завдання.
PS: подібні завдання доступні при підписці від 1 місяця
Також варто подивитися