Користувацькі винятки в Python

 2851

Ми вже знаємо про різні винятки в Python і про те, чому важливо обробляти винятки. Однак іноді може знадобитися створити свої власні винятки.

Визначення користувацьких винятків

В Python ми можемо визначити користувацькі винятки, створивши новий клас, який буде дочірнім вбудованому класу Exception.

Синтаксис для визначення користувацьких винятків у Python:

Тут CustomError – це визначена ​​користувачем помилка, яка наслідується від класу Exception.

Примітка:

   При розробці великих проектів, гарною практикою є розміщення всіх користувацьких винятків в окремому файлі.

   Багато стандартних модулів визначають свої власні винятки окремо як exceptions.py або errors.py (зазвичай, але не завжди).

Розглянемо приклад використання користувацького винятку в Python:

Результат:

   Якщо введене користувачем значення input_num більше 18:

Enter a number: 45
Eligible to Vote

   Якщо введене користувачем значення input_num менше 18:

Enter a number: 14
Exception occurred: Invalid Age

Тут ми визначили користувацький виняток InvalidAgeException, створивши новий клас, який є дочірнім класу Exception. Коли значення Input_num менше 18, генерується виняток. Коли виникає виняток, решта коду всередині блоку try пропускається.

Блок except перехоплює наш користувацький виняток InvalidAgeException, та виконується код всередині блоку except.

Кастомізація класів винятків

Щоб дізнатися про налаштування (кастомізацію) класів винятків, необхідно мати базові знання про об’єктно-орієнтоване програмування. Наприклад::

Результат:

Enter salary amount: 2000
Traceback (most recent call last):
File "<string>", line 17, in <module>
raise SalaryNotInRangeError(salary)
__main__.SalaryNotInRangeError: Salary is not in (5000, 15000) range

Тут ми перевизначили конструктор класу Exception, щоб він приймав наші власні користувацькі аргументи salary та message.

Потім конструктор батьківського класу Exception викликається вручну з аргументом self.message за допомогою методу super(). Користувацький атрибут self.salary визначається для подальшого використання.

Оцінити статтю:

1 Зірка2 Зірки3 Зірки4 Зірки5 Зірок (9 оцінок, середня: 4,78 з 5)
Завантаження...

Залишити відповідь

Ваш E-mail не буде опублікований. Обов'язкові поля відмічені *