Python Обработка на изключения: опитай, хвани, накрая и рейз [Пример]

Какво представлява обработката на изключения в Python?

Изключение е грешка, която възниква по време на изпълнение на програма. Въпреки това, докато изпълнявате програма, Python генерира изключение, което трябва да се обработи, за да се избегне срив на програмата ви. в Python език, изключенията се задействат автоматично при грешки или могат да бъдат задействани и прихванати от вашия код.

Изключението показва, че въпреки че събитието може да възникне, този тип събитие се случва рядко. Когато методът не е в състояние да се справи с изключението, той се хвърля към своята извикваща функция. В крайна сметка, когато изключение бъде изхвърлено от основната функция, програмата се прекратява внезапно.

Често срещани примери за изключения

  • Деление на нула
  • Достъп до файл, който не съществува.
  • Събиране на два несъвместими вида
  • Опит за достъп до несъществуващ индекс на последователност
  • Премахване на таблицата от прекъснатия сървър на база данни.
  • Теглене от банкомат на повече от наличната сума

Защо трябва да използвате Изключения?

Ето причините за използването на изключения в Python:

  • Обработката на изключения ви позволява да отделите кода за обработка на грешки от нормалния код.
  • Изключение е Python обект което представлява грешка.
  • Както при коментарите на кода, изключенията ви помагат да си припомните какво очаква програмата.
  • Той изяснява кода и подобрява четливостта.
  • Позволява ви да стимулирате последствията, тъй като обработката на грешки се извършва на едно място и по един начин.
  • Изключение е удобен метод за обработка на съобщения за грешка.
  • In Python, можете да предизвикате изключение в програмата, като използвате метода за повдигане на изключение.
  • Повдигането на изключение ви помага да прекъснете текущото изпълнение на кода и връща изключението обратно към очакваното, докато не бъде обработено.
  • Обработка на изключения за компоненти, които не могат да ги обработват директно.

Правила за изключения

Ето някои основни правила за Python обработка на изключение:

  • Изключенията трябва да са обекти на клас
  • За класови изключения можете да използвате оператор try с клауза за изключение, която споменава определен клас.
  • Дори ако оператор или израз е синтактично правилен, той може да покаже грешка, когато се направи опит за изпълнението му.
  • Грешките, открити по време на изпълнение, се наричат ​​изключения и те не са безусловно фатални.

Python Механизъм за обработка на изключения

Обработката на изключения се управлява от следните 5 ключови думи:

  1. опитвам
  2. улов
  3. накрая
  4. хвърлям

Python Опитайте Statement

Операторът try включва ключова дума try, последвана от двоеточие (:) и набор от код, в който могат да възникнат изключения. Има една или повече клаузи.

По време на изпълнението на оператора try, ако тогава не са възникнали изключения, интерпретаторът игнорира манипулаторите на изключения за този конкретен оператор try.

В случай, че възникне някакво изключение в пакета за опити, пакетът за изпробване изтича и управлението на програмата се прехвърля към манипулатора за съвпадение с изключение, следващ пакета за опити.

Syntax:
try:
statement(s)

Изявлението за улов

Catch блоковете приемат един аргумент наведнъж, което е типът изключение, което е вероятно да улови. Тези аргументи могат да варират от конкретен тип изключение, което може да се променя до всеобхватна категория изключения.

Правила за catch block:

  • Можете да дефинирате 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());
}

Накрая Изявление в Python

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

И накрая, клаузата не е задължителна. Предназначено е да се определят почистващи действия, които трябва да се изпълняват при всякакви условия.

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

И накрая, клаузата се изпълнява преди оператора try.

Raise Statement in Python

Инструкцията за повишаване указва аргумент, който инициализира обекта за изключение. Тук запетая следва името на изключението и аргумента или кортежа на аргумента, който следва запетаята.

Синтаксис:

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

В този синтаксис аргументът не е задължителен и по време на изпълнение стойността на аргумента за изключение винаги е none.
Пример:
A Python изключението може да бъде всяка стойност като низ, клас, число или обект. Повечето от тези изключения, повдигнати от Python core са класове с аргумент, който е екземпляр на класа.

важно Python грешки

Тип грешка Descriptйон
ArithmeticError ArithmeticError действа като основен клас за всички аритметични изключения. Повдига се за грешки в аритметични операции.
ImportError ImportError се появява, когато се опитвате да импортирате модул, който не присъства. Този вид изключение възниква, ако сте направили грешка при въвеждане на името на модула или модула, който не присъства в стандартния път.
Грешка в индекса IndexErro се появява, когато се опитате да препратите към последователност, която е извън обхвата.
KeyError Когато конкретен ключ не бъде намерен в речник, възниква изключение KeyError.
NameError NameError се поражда, когато име се споменава в код, който никога не съществува в локалното или глобалното пространство на имена.
ValueError Грешка в стойността се появява, когато функция или вградена операция получи аргумент, който може да е от правилен тип, но няма подходяща стойност.
EOFгрешка Този вид грешка възниква, когато една от вградените функции (input() или raw_input()) достигне условие EOF, без да прочете никакви данни.
ZeroDivisonError Този тип грешка възниква при деление или модул с нула за всички числови типове.
IOError- Този вид грешка възниква, когато входно/изходна операция е неуспешна.
syntaxError SyntaxErrors възниква, когато има грешка в Python синтаксис.
IndentationError Тази грешка възниква, когато отстъпът не е дефиниран правилно

Друго важно Python Изключения

изключение Descriptйон
Аритметично изключение Аритметична грешка, като деление на нула.
ArraylndexOutOfBoundsException Индексът на масива е извън границите.
ArrayStoreException Присвояването ви помага за елемент от масив от несъвместим тип.
ClassCastException Невалиден актьорски състав
MlegalMonitorStateException Незаконна работа на монитора, като изчакване на отключена нишка.
MlegalStateException Средата или приложението са в грешно състояние.
ClassNotFoundException Класът не е намерен.
CloneNotSupportedException Опит за клониране на обект, който не имплементира Cloneable интерфейс.
Изключение за незаконен достъп Достъпът до клас е отказан.
InstantiationException Възниква, когато се опитате да създадете обект от интерфейс или абстрактен клас.
CloneNotSupportedException Опит за клониране на обект, който не имплементира интерфейса.

Грешка срещу изключения

грешка Изключения
Всички грешки в Python са непроверения тип. Изключенията включват отметнат и непроверен тип.
По време на изпълнение възникват грешки, които не са известни на компилатора. Изключенията могат да бъдат възстановени чрез обработката им с помощта на блокове try-catch.
Грешките се дължат най-вече на средата, в която се изпълнява дадено приложение. Самото приложение предизвиква изключения.
Примери:
OutofMemoryError
Примери:
Проверени изключения, SQL изключение, NullPointerException и др.

Oбобщение

  • Изключение е грешка, възникнала по време на изпълнение на програма.
  • Изключението показва, че въпреки че събитието може да възникне, този тип събитие се случва рядко.
  • Често срещани примери за изключения са 1) Деление на нула, 2) Достъп до файл, който не съществува, 3) Добавяне на два несъвместими типа.
  • Изключение е Python обект, който представлява грешка.
  • Операторът try включва ключова дума try, последвана от двоеточие (:) и набор от код, в който могат да възникнат изключения. Има една или повече клаузи.
  • Catch блоковете приемат един аргумент наведнъж, което е типът изключение, което е вероятно да улови.
  • Инструкцията за повишаване указва аргумент, който инициализира обекта за изключение.
  • И накрая, блокът винаги се изпълнява, независимо дали е хвърлено изключение или не.