Python Обработка на изключения: опитай, хвани, накрая и рейз [Пример]
Какво представлява обработката на изключения в Python?
Изключение е грешка, която възниква по време на изпълнение на програма. Въпреки това, докато изпълнявате програма, Python генерира изключение, което трябва да се обработи, за да се избегне срив на програмата ви. в Python език, изключенията се задействат автоматично при грешки или могат да бъдат задействани и прихванати от вашия код.
Изключението показва, че въпреки че събитието може да възникне, този тип събитие се случва рядко. Когато методът не е в състояние да се справи с изключението, той се хвърля към своята извикваща функция. В крайна сметка, когато изключение бъде изхвърлено от основната функция, програмата се прекратява внезапно.
Често срещани примери за изключения
- Деление на нула
- Достъп до файл, който не съществува.
- Събиране на два несъвместими вида
- Опит за достъп до несъществуващ индекс на последователност
- Премахване на таблицата от прекъснатия сървър на база данни.
- Теглене от банкомат на повече от наличната сума
Защо трябва да използвате Изключения?
Ето причините за използването на изключения в Python:
- Обработката на изключения ви позволява да отделите кода за обработка на грешки от нормалния код.
- Изключение е Python обект което представлява грешка.
- Както при коментарите на кода, изключенията ви помагат да си припомните какво очаква програмата.
- Той изяснява кода и подобрява четливостта.
- Позволява ви да стимулирате последствията, тъй като обработката на грешки се извършва на едно място и по един начин.
- Изключение е удобен метод за обработка на съобщения за грешка.
- In Python, можете да предизвикате изключение в програмата, като използвате метода за повдигане на изключение.
- Повдигането на изключение ви помага да прекъснете текущото изпълнение на кода и връща изключението обратно към очакваното, докато не бъде обработено.
- Обработка на изключения за компоненти, които не могат да ги обработват директно.
Правила за изключения
Ето някои основни правила за Python обработка на изключение:
- Изключенията трябва да са обекти на клас
- За класови изключения можете да използвате оператор try с клауза за изключение, която споменава определен клас.
- Дори ако оператор или израз е синтактично правилен, той може да покаже грешка, когато се направи опит за изпълнението му.
- Грешките, открити по време на изпълнение, се наричат изключения и те не са безусловно фатални.
Python Механизъм за обработка на изключения
Обработката на изключения се управлява от следните 5 ключови думи:
- опитвам
- улов
- накрая
- хвърлям
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 блоковете приемат един аргумент наведнъж, което е типът изключение, което е вероятно да улови.
- Инструкцията за повишаване указва аргумент, който инициализира обекта за изключение.
- И накрая, блокът винаги се изпълнява, независимо дали е хвърлено изключение или не.