Урок 18. Try Except

У Python блок try використовується для обробки виключень. Це дозволяє програмі продовжувати виконання, навіть якщо сталася помилка. Суть у тому, що ви намагаєтеся виконати певний код в блоці try, а якщо там виникає помилка, ви можете обробити її в блоці except. Приклад з відео:

#Блок "try" дозволяє перевірити блок коду на наявність помилок.
#Блок "except" дозволяє обробити помилку.
#print(varNum1)
try:
    print(varNum1)
    
except:
    print("Something went wrong.")

У Python ви можете мати кілька блоків except для одного блоку try. Це дозволяє обробляти різні типи виключень окремо. Кожен блок except може бути призначений для конкретного типу виключення або для групи типів. Приклад з відео:

#Ви можете визначити скільки завгодно блоків "винятків".
#якщо ви хочете виконати спеціальний блок коду для особливого типу помилки
#print(varNum1)
try:
    print(varNum1)
    
except NameError:
    print("Variable is not defined.")
    
except:
    print("Something went wrong.")

Ключове слово else у блоці try

Ключове слово else у блоці try в Python використовується для визначення коду, який буде виконано, якщо в блоці try не виникло жодних виключень. Це дозволяє відокремити код, що виконується при успішному завершенні, від коду обробки помилок. Приклад з відео:

#Ви можете використовувати ключове слово «else», 
#щоб визначити блок коду, який буде виконано
#якщо помилок не було
try:
    print("Python is a solid choice.")
    
except:
    print("Something went wrong.")
    
else:
    print("No exceptions were raised.")

Ключове слово finally

Ключове слово finally в Python використовується в блоці try для визначення коду, який буде виконаний завжди, незалежно від того, чи виникло виключення в блоці try, чи ні. Це корисно для виконання дій, які потрібно зробити в будь-якому випадку, наприклад, закриття файлів, звільнення ресурсів або запису логів. Приклад з відео:

#Блок "finally", якщо його вказано, 
#буде виконано незалежно від того
#чи блок "try" викликає помилку чи ні.
try:
    print(varNum1)
    
except:
    print("Something went wrong.")
    
finally:
    print("End of try except.")

Ключове слово raise

Ключове слово raise в Python використовується для генерації виключень (exceptions). Це може бути корисно, коли ви хочете вручну викликати виключення у вашому коді, наприклад, для перевірки умов або для передачі помилок далі. Приклад з відео:

#Щоб створити (або підняти) виняток, 
#використовуйте ключове слово "raise".
#Ви можете визначити, яку помилку викликати, 
#і текст, який слід показати користувачеві.
quantityParam = 0

if quantityParam<1:
    raise Exception("Quantity can not be less than one.")

Можна визначити, яку саме помилку і за яких умов викликати. Наприклад, за допомогою функції type та ключового слова is ми можемо встановити умову для типу даних, порушення якої буде викликати помилку. Приклад з відео:

#Ви можете визначити, яку помилку викликати, і текст,
#який показати користувачеві.
varNum = "Text"

if not type(varNum) is int:
    raise TypeError("Invalid type. Only integers can be accepted.")

else:
    print(varNum)

Метод input() та блок try

Метод input() в Python використовується для отримання введення від користувача. Цей метод зупиняє виконання програми і чекає, поки користувач введе деяке значення, після чого повертає його у вигляді рядка. Приклад з відео:

#Python 3.6 використовує метод input().
#Python 2.7 використовує метод raw_input().
#Python припиняє виконання, коли справа доходить до функції input(),
#і продовжується, коли користувач вводить певні дані.
varNum1 = float(input("Enter number 1: "))
varNum2 = float(input("Enter number 2: "))

try:
    divisionResult=varNum1/varNum2
    print("{} divided by {} equals {}".format(varNum1,varNum2,divisionResult))
except ZeroDivisionError:
    print("You can not divide by zero.")

Використання методу input() разом із блоком try в Python дозволяє ефективно обробляти введення користувача і управляти потенційними помилками. Це особливо корисно, коли ви очікуєте, що користувач введе певний тип даних, наприклад, число. Приклад з відео:

#Python припиняє виконання, 
#коли доходить до функції input(),
#і продовжується, коли користувач 
#вводить певні дані.
#В цьому прикладі помістили 
#функції input() всередину
#блоку try.

try:
    varNum1 = float(input("Enter number 1: "))
    varNum2 = float(input("Enter number 2: "))
    divisionResult=varNum1/varNum2
    print("{} divided by {} equals {}".format(varNum1,varNum2,divisionResult))
except ZeroDivisionError:
    print("You can not divide by zero.")
    
except ValueError:
    print("Invalid data type. Numbers must be entered.")
Урок 18. Try Except

В цьому відео поговоримо про конструкцію Try Except.

Приклади на Github

Leave a Reply

Your email address will not be published. Required fields are marked *