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

Съдържание:

Anonim

Какво е изключение в Python?

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

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

В този урок за изключително боравене с Python ще научите:

  • Какво е изключение в Python?
  • Чести примери за изключение
  • Защо трябва да използвате изключения?
  • Правила за изключения
  • Изключителен механизъм за работа
    • Изявлението за опитване
    • Изявление за улова
    • Изявление за повишаване
  • Важни грешки на Python
  • Други важни изключения на Python
  • Грешка срещу изключения

Чести примери за изключение:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Syntax:try:statement(s)

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

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

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

  • Можете да дефинирате блок за хващане, като използвате ключовата дума catch
  • Параметърът Catch Exception винаги е заграден в скоби
  • Той винаги представлява вида изключение, което хваща манипулатори на блокове.
  • Код за обработка на изключения се записва между две {} къдрави скоби.
  • Можете да поставите множество блокове за хващане в рамките на един блок за опитване.
  • Можете да използвате блок catch само след блока try.
  • Всички блокове за хващане трябва да бъдат подредени от изключение от подклас към суперклас.

Пример:

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.

Изявление за повишаване

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

Синтаксис:

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

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

Пример:

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

Важни грешки на Python

Тип грешка Описание
ArithmeticError ArithmeticError действа като основен клас за всички аритметични изключения. Повишава се за грешки в аритметичните операции.
ImportError 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.
Неправомерен AccessException Достъпът до клас е отказан.
InstantiationException Възниква при опит за създаване на обект от интерфейс или абстрактен клас.
CloneNotSupportedException Опит за клониране на обект, който не реализира интерфейса.

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

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

Обобщение

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