Що таке виняток у Python?
Винятком є помилка, яка трапляється під час виконання програми. Однак під час запуску програми Python генерує виняток, який слід обробляти, щоб уникнути збою програми. Мовою Python винятки запускаються автоматично при помилках, або вони можуть бути ініційовані та перехоплені вашим кодом.
Виняток вказує на те, що, хоча подія може відбутися, подія такого типу трапляється нечасто. Коли метод не може обробити виняток, він переходить до функції виклику. Зрештою, коли виняток виключається з основної функції, програма різко припиняється.
У цьому підручнику з виняткової роботи з Python ви дізнаєтесь:
- Що таке виняток у Python?
- Поширені приклади винятків
- Чому ви повинні використовувати винятки?
- Правила винятків
- Винятковий механізм поводження
- Заява про спробу
- Заява про улов
- Заява про підвищення
- Важливі помилки Python
- Інші важливі винятки Python
- Помилка проти винятків
Поширені приклади винятків:
- Ділення на нуль
- Доступ до файлу, який не існує.
- Додавання двох несумісних типів
- Спроба отримати доступ до неіснуючого індексу послідовності
- Видалення таблиці з відключеного сервера баз даних.
- Зняття в банкоматі більше, ніж доступна сума
Чому ви повинні використовувати винятки?
Ось причини використання винятків у Python:
- Обробка винятків дозволяє відокремити код обробки помилок від звичайного коду.
- Винятком є об'єкт Python, який представляє помилку.
- Як і коментарі до коду, винятки допомагають нагадати собі про те, чого очікує програма.
- Це уточнює код і покращує читабельність.
- Дозволяє стимулювати наслідки, оскільки усунення помилок відбувається в одному місці і одним чином.
- Винятком є зручний метод обробки повідомлень про помилки.
- У Python ви можете викликати виняток у програмі, використовуючи метод підвищення винятку.
- Підвищення винятку допомагає зламати поточне виконання коду і повертає виняток назад до очікуваного, поки він не буде оброблений.
- Обробка винятків для компонентів, які не можуть обробляти їх безпосередньо.
Правила винятків
Ось декілька важливих правил обробки винятків на Python:
- Винятками повинні бути об'єкти класу
- Для винятків класів можна використовувати оператор try із реченням изключення, яке згадує певний клас.
- Навіть якщо вираз або вираз синтаксично правильні, він може відображати помилку при спробі його виконати.
- Помилки, виявлені під час виконання, називаються винятками, і вони не є безумовно фатальними.
Винятковий механізм поводження
Обробкою винятків керують наступні 5 ключових слів:
- спробуй
- улов
- нарешті
- кинути
Заява про спробу
Оператор try включає ключове слово try, за яким ставиться двокрапка (:) та набір коду, у якому можуть траплятися винятки. У ньому є один або кілька речень.
Під час виконання оператора try, якщо тоді не сталося винятків, інтерпретатор ігнорує обробники винятків для цього конкретного оператора try.
У випадку, якщо в наборі try виникає будь-яке виняток, набір try закінчується, і керування програмою передається до відповідного, крім обробника, що слідує за набором try.
Syntax:try:statement(s)
Заява про улов
Блоки блокування беруть по одному аргументу за раз, що є винятком, який він, ймовірно, може вловити. Ці аргументи можуть варіюватися від конкретного типу винятків, які можна варіювати, до загальної категорії винятків.
Правила блокування лову:
- Ви можете визначити блок catch за допомогою ключового слова catch
- Параметр Catch Exception завжди вкладається в дужки
- Він завжди представляє тип винятку, який вловлює дескриптори блоків.
- Код обробки винятків пишеться між двома фігурними дужками {}.
- Ви можете розмістити кілька блоків catch в одному блоці спроби.
- Ви можете використовувати блок catch лише після блоку try.
- Весь блок catch повинен бути упорядкований від підкласу до виключення суперкласу.
Приклад:
try}catch (ArrayIndexOutOfBoundsException e) {System.err.printin("Caught first " + e.getMessage()); } catch (IOException e) {System.err.printin("Caught second " + e.getMessage());}
Нарешті Блок
Нарешті, блок завжди виконується незалежно від викиду чи ні. Кінцеве ключове слово дозволяє створити блок коду, який слідує за блоком try-catch.
Нарешті, пункт є необов’язковим. Він призначений для визначення очисних дій, які повинні виконуватися в усіх умовах.
try:raise KeyboardInterruptfinally:print 'welcome, world!'OutputWelcome, world!KeyboardInterrupt
Нарешті, пункт виконується перед оператором try.
Заява про підвищення
Оператор rise визначає аргумент, який ініціалізує об'єкт виключення. Тут кома слідує за назвою винятку, а аргумент або кортеж аргументу, який йде після коми.
Синтаксис:
raise [Exception [, args [, traceback]]]
У цьому синтаксисі аргумент необов’язковий, і на момент виконання значення аргументу виключення завжди не має значення.
Приклад:
Винятком Python може бути будь-яке значення, таке як рядок, клас, число або об'єкт. Більшість з цих винятків, які викликає ядро Python, є класами з аргументом, який є екземпляром класу.
Важливі помилки Python
Тип помилки | Опис |
ArithmeticError | ArithmeticError діє як базовий клас для всіх арифметичних винятків. Він підвищується за помилки в арифметичних операціях. |
Помилка імпорту | Помилка ImportError виникає, коли ви намагаєтеся імпортувати модуль, якого немає. Такий виняток трапляється, якщо ви допустили помилку друку в назві модуля або модуля, якого немає у стандартному шляху. |
Помилка IndexError | IndexErroris, що піднімається, коли ви намагаєтеся вказати послідовність, яка виходить за межі діапазону. |
KeyError | Коли певний ключ не знайдений у словнику, виникає виняток KeyError. |
NameError | Помилка NameError виникає, коли на ім'я посилається в коді, який ніколи не існує в локальному або глобальному просторі імен. |
ValueError | Помилка значення виникає, коли функція або вбудована операція отримує аргумент, який може бути правильного типу, але не має відповідного значення. |
EOFerror | Цей тип помилок виникає, коли одна з вбудованих функцій (input () або raw_input ()) досягає стану EOF без зчитування будь-яких даних. |
ZeroDivisonError | Цей тип помилки виникає, коли ділення або модуль на нуль має місце для всіх числових типів. |
IOError- | Помилка такого типу виникає, коли операція введення / виведення не вдається. |
синтаксична помилка | Синтаксис Помилки, що виникають, коли в синтаксисі Python є помилка. |
Помилка відступу | Ця помилка виникає, коли відступ неправильно визначений |
Інші важливі винятки Python
Виняток | Опис |
ArithmeticException | Арифметична помилка, така як ділити на нуль. |
ArraylndexOutOfBoundsException | Індекс масиву поза межами. |
ArrayStoreException | Присвоєння допомагає елементу масиву несумісного типу. |
ClassCastException | Недійсний акторський склад |
MlegalMonitorStateException | Незаконна робота монітора, як очікування на розблокованому потоці |
MlegalStateException | Навколишнє середовище або програма перебувають у неправильному стані. |
ClassNotFoundException | Клас не знайдено. |
CloneNotSupportedException | Спроба клонувати об’єкт, який не реалізує інтерфейс Cloneable. |
Незаконне виняток доступу | Доступ до класу відмовлено. |
InstantiationException | Виникає при спробі створити об’єкт інтерфейсу або абстрактного класу. |
CloneNotSupportedException | Спроба клонувати об’єкт, який не реалізує інтерфейс. |
Помилка проти винятків
Помилка | Винятки |
Усі помилки в Python не позначені. | Винятки включають як перевірений, так і неперевірений тип. |
Помилки трапляються під час виконання, що невідомо компілятору. | Винятки можна відновити, обробляючи їх за допомогою блоків try-catch. |
Помилки здебільшого спричинені середовищем, в якому працює програма. | Сама програма викликає винятки. |
Приклади: OutofMemoryError | Приклади: перевірені винятки, виняток SQL, NullPointerException тощо. |
Резюме
- Винятком є помилка, яка сталася під час виконання програми.
- Виняток вказує на те, що, хоча подія може відбутися, подія такого типу трапляється нечасто.
- Поширені приклади винятків: 1) Поділ за нулем, 2) Доступ до файлу, якого не існує, 3) Додавання двох несумісних типів.
- Винятком є об'єкт Python, який представляє помилку.
- Оператор try включає ключове слово try, за яким ставиться двокрапка (:) та набір коду, у якому можуть траплятися винятки. У ньому є один або кілька речень.
- Блоки блокування беруть по одному аргументу за раз, що є винятком, який він, ймовірно, може вловити.
- Оператор rise визначає аргумент, який ініціалізує об'єкт виключення.
- Нарешті, блок завжди виконується незалежно від викиду чи ні.