Python Обробка винятків: спробувати, зловити, нарешті та підняти [Приклад]

Що таке обробка винятків Python?

Винятком є ​​помилка, яка виникає під час виконання програми. Однак під час виконання програми, Python генерує виняток, який слід обробити, щоб уникнути збою програми. в Python мови, винятки запускаються автоматично при помилках, або вони можуть бути викликані та перехоплені вашим кодом.

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

Поширені приклади винятків

  • Ділення на нуль
  • Доступ до файлу, якого не існує.
  • Додавання двох несумісних типів
  • Спроба отримати доступ до неіснуючого індексу послідовності
  • Видалення таблиці з відключеного сервера бази даних.
  • Зняття в банкоматі суми, що перевищує доступну суму

Чому варто використовувати винятки?

Ось причини використання винятків у Python:

  • Обробка винятків дозволяє відокремити код обробки помилок від звичайного коду.
  • Виняток становить a Python об'єкт що означає помилку.
  • Як і у випадку з коментарями до коду, винятки допомагають вам нагадати собі про те, чого очікує програма.
  • Це пояснює код і покращує читабельність.
  • Дозволяє стимулювати наслідки, оскільки обробка помилок відбувається в одному місці й одним способом.
  • Винятком є ​​зручний спосіб обробки повідомлень про помилки.
  • In Python, ви можете викликати виняток у програмі за допомогою методу raise exception.
  • Викликання винятку допомагає вам перервати поточне виконання коду та повертає виняток до очікування, доки його не буде оброблено.
  • Обробка винятків для компонентів, які не можуть обробляти їх безпосередньо.

Правила винятків

Ось кілька основних правил Python обробка винятків:

  • Винятком повинні бути об’єкти класу
  • Для винятків класів ви можете використовувати оператор try із реченням винятку, у якому згадується певний клас.
  • Навіть якщо оператор або вираз синтаксично правильний, він може відобразити помилку під час спроби виконати його.
  • Помилки, виявлені під час виконання, називаються винятками, і вони не є безумовно фатальними.

Python Механізм обробки винятків

Обробкою винятків керують такі 5 ключових слів:

  1. намагатися
  2. зловити
  3. в кінці кінців
  4. кидати

Python Спробуйте Statement

Інструкція try містить ключове слово try, після якого йде двокрапка (:) і набір коду, у якому можуть виникнути винятки. Він має один або кілька пунктів.

Під час виконання оператора try, якщо винятків не сталося, інтерпретатор ігнорує обробники винятків для цього конкретного оператора try.

У разі виникнення будь-якої виняткової ситуації в наборі спроб, термін дії набору проб закінчується, а керування програмою передається відповідному обробнику винятків, наступному за набором спроб.

Syntax:
try:
statement(s)

Заява про улов

Блоки catch приймають по одному аргументу за раз, що є типом винятку, який він, швидше за все, перехопить. Ці аргументи можуть варіюватися від конкретного типу винятку, який можна варіювати, до загальної категорії винятків.

Правила блоку catch:

  • Ви можете визначити блок catch за допомогою ключового слова catch
  • Параметр Catch Exception завжди береться в круглі дужки
  • Він завжди представляє тип винятку, який перехоплює дескриптори блоку.
  • Код обробки винятків записується між двома фігурними дужками {}.
  • Ви можете розмістити кілька блоків catch в одному блоці try.
  • Ви можете використовувати блок catch лише після блоку try.
  • Усі блоки catch мають бути впорядковані від підкласу до винятку суперкласу.

приклад:

try
}
catch (ArrayIndexOutOfBoundsException e) {
System.err.printin("Caught first " + e.getMessage()); } catch (IOException e) {
System.err.printin("Caught second " + e.getMessage());
}

Нарешті Заява в Python

Остаточний блок завжди виконується незалежно від того, викинуто виняток чи ні. Ключове слово final дозволяє створити блок коду, який слідує за блоком try-catch.

Нарешті, речення є необов’язковим. Він призначений для визначення дій з очищення, які слід виконувати за будь-яких умов.

try:
    raise KeyboardInterrupt
finally:
    print 'welcome, world!'
Output
Welcome, world!
KeyboardInterrupt

Нарешті, пропозиція виконується перед оператором try.

Raise Statement in Python

Інструкція raise визначає аргумент, який ініціалізує об’єкт винятку. Тут кома стоїть після назви винятку та аргументу або кортежу аргументу, який стоїть після коми.

Синтаксис:

raise [Exception [, args [, traceback]]]

У цьому синтаксисі аргумент необов’язковий, і під час виконання значення аргументу винятку завжди дорівнює нулю.
приклад:
A Python винятком може бути будь-яке значення, наприклад рядок, клас, число або об’єкт. Більшість із цих винятків, які викликані Python core — це класи з аргументом, який є екземпляром класу.

Важливий Python помилки

Тип помилки Опис
ArithmeticError ArithmeticError діє як базовий клас для всіх арифметичних винятків. Викликається за помилки в арифметичних операціях.
ImportError Помилка ImportError виникає, коли ви намагаєтеся імпортувати модуль, якого немає. Цей вид винятку виникає, якщо ви зробили помилку в назві модуля або модуля, якого немає в стандартному шляху.
Помилка IndexError Помилка IndexErro виникає, коли ви намагаєтеся посилатися на послідовність, яка виходить за межі діапазону.
KeyError Якщо певний ключ не знайдено в словнику, виникає виняток KeyError.
Помилка імені Помилка NameError виникає, коли ім’я посилається на код, який ніколи не існує в локальному чи глобальному просторі імен.
ValueError Помилка значення виникає, коли функція або вбудована операція отримує аргумент, який може бути правильного типу, але не має відповідного значення.
EOFerror Цей тип помилки виникає, коли одна з вбудованих функцій (input() або raw_input()) досягає умови EOF, не читаючи жодних даних.
ZeroDivisonError Цей тип помилки виникає під час ділення або модуля на нуль для всіх числових типів.
IOError- Цей тип помилки виникає, коли операція введення/виведення не вдається.
синтаксична помилка SyntaxErrors викликається, якщо є помилка в Python синтаксис
IdentificationError Ця помилка виникає, коли відступ визначено неправильно

Інше Важливо Python винятки

Виняток Опис
ArithmeticException Арифметична помилка, як-от ділення на нуль.
ArraylndexOutOfBoundsException Індекс масиву виходить за межі.
ArrayStoreException Присвоєння допомагає елементу масиву несумісного типу.
ClassCastException Недійсний акторський склад
MlegalMonitorStateException Незаконна робота монітора, наприклад очікування розблокованого потоку.
MlegalStateException Середовище або програма знаходяться в неправильному стані.
ClassNotFoundException Клас не знайдено.
CloneNotSupportedException Спроба клонувати об’єкт, який не реалізує інтерфейс Cloneable.
Illegal AccessException Доступ до класу заборонено.
InstantiationException Виникає під час спроби створити об’єкт інтерфейсу або абстрактного класу.
CloneNotSupportedException Спроба клонувати об’єкт, який не реалізує інтерфейс.

Помилка проти винятків

помилка винятки
Усі помилки в Python є неперевіреним типом. Винятки включають як позначений, так і неперевірений тип.
Під час виконання виникають помилки, які невідомі компілятору. Винятки можна відновити, обробивши їх за допомогою блоків try-catch.
Помилки здебільшого викликані середовищем, у якому працює програма. Сама програма викликає винятки.
Приклади:
OutofMemoryError
Приклади:
Перевірені винятки, винятки SQL, NullPointerException тощо.

Підсумки

  • Винятком є ​​помилка, що сталася під час виконання програми.
  • Виняток вказує на те, що, хоча подія може відбутися, цей тип події відбувається рідко.
  • Поширені приклади винятків: 1) Ділення на нуль, 2) Доступ до файлу, якого не існує, 3) Додавання двох несумісних типів.
  • Виняток становить a Python об'єкт, який представляє помилку.
  • Інструкція try містить ключове слово try, після якого йде двокрапка (:) і набір коду, у якому можуть виникнути винятки. Він має один або кілька пунктів.
  • Блоки catch приймають по одному аргументу за раз, що є типом винятку, який він, швидше за все, перехопить.
  • Інструкція raise визначає аргумент, який ініціалізує об’єкт винятку.
  • Нарешті, блок завжди виконується незалежно від того, викинуто виняток чи ні.