Python Обробка винятків: try, except, finally, raise

⚡ Розумний підсумок

Python Обробка винятків дозволяє вашій програмі реагувати на помилки під час виконання, а не призводити до аварійного завершення. Тут ви дізнаєтеся, як працюють try, except, finally та raise, чому важливі винятки, а також про поширені вбудовані типи помилок, з якими ви зіткнетеся.

  • ⚠️ Що це: Винятком є ​​помилка виконання, яка Python підвищує, коли щось йде не так.
  • 🛡️ спробуйте / крім: Блок try виконує ризикований код; except перехоплює та обробляє виняток.
  • 🧹 нарешті: Блок finally завжди виконується, незалежно від того, чи стався виняток, чи ні.
  • ???? підвищити: Оператор raise дозволяє вам навмисно викликати виняток.
  • 📋 Типи помилок: До поширених винятків належать ValueError, KeyError, IndexError та ZeroDivisionError.
  • 🤖 Допомога ШІ: Інструменти штучного інтелекту, такі як Copilot, генерують блоки try-except та пропонують типи помилок.

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 виникає, коли ви намагаєтеся імпортувати модуль, який не представлений. Такий виняток виникає, якщо ви зробили typing помилка в назві модуля або модуль, якого немає у стандартному шляху.
Помилка 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 Виникає під час спроби створити об'єкт інтерфейсу або ABStracт-клас.
CloneNotSupportedException Спроба клонувати об’єкт, який не реалізує інтерфейс.

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

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

Поширені запитання

Обробка винятків — це процес реагування на помилки під час виконання, щоб ваша програма не аварійно завершила роботу. Python використовує блоки try та except для перехоплення винятків та виконання коду відновлення замість цього.

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

Блок finally виконується незалежно від того, чи був викликаний виняток, тому він ідеально підходить для завдань очищення, таких як закриття файлів або звільнення ресурсів, які повинні завжди виконуватися.

Оператор raise навмисно запускає виняток. Ви можете викликати вбудований виняток, такий як ValueError, або власний, щоб сигналізувати про виникнення помилки.

Помилки, такі як SyntaxError, зазвичай неможливо відновити з програми та зупинити її. Винятки – це події виконання, які можна перехопити та обробити за допомогою блоків try та except.

Помічники штучного інтелекту, такі як GitHub Copilot, автозаповнюють блоки try-except, пропонують правильний тип винятку для перехоплення та генерують код finally cleanup на основі короткого опису вашої логіки.

Так. Інструменти на базі штучного інтелекту можуть автоматизувати перенесення текстуping ризикований код у блоках try-except, рекомендувати конкретні винятки замість голого except та додати логування для легшого налагодження помилок.

До поширених вбудованих винятків належать ValueError, TypeError, KeyError, IndexError, ImportError, NameError та ZeroDivisionError. Кожен з них сигналізує про певний тип проблеми під час виконання у вашому коді.

Підсумуйте цей пост за допомогою: