Питхон

Питхон Екцептион

Питхон Екцептион

Изузетак је догађај који настаје током извршавања програма ради прекида или промене нормалног тока програма. На пример, грешка доводи до изузетка. Као и други програмски језици, и Питхон садржи многе уграђене изузетке. Ови изузеци настају ако се приликом извођења програма наиђе на грешку. Тип грешке одређује који ће изузетак бити покренут. Када се догоди изузетак, тумач Питхон проверава да ли се њиме рукује; ако не, прекида програм. Овај чланак објашњава изузетке у Питхону кроз разне примере.

Уграђени Питхон изузеци

Као што је раније речено, Питхон има много уграђених изузетака који се појављују када се током извршења програма догоди грешка. Сваки изузетак изведен је из основне класе „Изузетак“. Следеће укључује неке уграђене Питхон изузетке, заједно са кратким описом сваке врсте изузетака:

Изузетак Опис
Изузетак Сваки изузетак је изведен из ове класе.
ИмпортЕррор Овај изузетак се покреће када се увози одређени модул и он није пронађен.
ЕОФЕррор Ово је изузетак на крају датотеке. Овај изузетак се јавља када се достигне крај датотеке.
ЗероДивисионЕррор Овај изузетак се јавља када је број подељен са нулом.
КеиЕррор Овај изузетак се покреће ако се наведе или користи одређени кључ који није дефинисан у речнику.
ИндекЕррор Овај изузетак се покреће када се покуша приступити индексу низа који није у опсегу.
ФлоатингПоинтЕррор Овај изузетак се покреће када операција са покретном зарезом не успе.

Ово су неки од уграђених изузетака у Питхону. Посетите званичну документацију за више информација о коришћењу уграђених изузетака у Питхону, који се налазе на хттпс: // доцс.питон.орг / 3 / либрари / изузеци.хтмл.

Изузетак Употреба у Питхону

Изузеци у Питхону обрађују се помоћу наредбе три. Део кода који може да створи или изузме изузетак имплементиран је у блоку три. Поред блока три, имплементиран је осим блока који обрађује изузетак. У блоку осим хватамо изузетак и одлучујемо коју ћемо операцију извршити када наиђемо на тај изузетак. Синтакса писања покушаја и осим блокова је следећа:

покушати:
изврши операцију или функцију
осим:
функционалност за руковање изузетком

Сада ћемо имплементирати једноставан код у нашу Питхон скрипту користећи блокове три и осим.

Овде ћемо исписати променљиву „наме“ која није дефинисана. Ово доводи до изузетка у блоку осим.

#имплементинг проба блок
покушати:
принт (име)
#имплементинг осим блока
осим:
принт ("Дошло је до изузетка")

Оутпут

Ако се не догоди изузетак, извршава се само блок три. У блоку осим штампа се изјава да је дошло до изузетка.

Погледајмо још један пример где дефинишемо променљиву имена:

#дефинисање променљиве имена
наме = "Означи"
#имплементинг проба блок
покушати:
принт (име)
#имплементинг осим блока
осим:
принт ("Дошло је до изузетка")

Оутпут

У горњем примеру, блок три се извршава, а осим блока се прескаче, јер програм не ствара никакве изузетке. Можемо да дефинишемо колико год желимо осим блокова у нашем програму. Сваки осим блока обрађује одређену врсту изузетака.

#имплементинг проба блок
покушати:
принт (име)
#имплементинг осим блока за хватање грешке у имену
осим НамеЕррор:
принт ("Варијабла није дефинисана")
#имплементинг осим блока
осим:
принт ("Нешто није у реду осим грешке у имену")

Оутпут

У Питхону, Екцептион је основна класа за све изузетке. Уместо да упишемо име одређеног изузетка у блок осим, ​​можемо једноставно написати „Изузетак“ и ухватити сваку врсту изузетка на овај начин.

#имплементинг проба блок
покушати:
принт (име)
#имплементинг осим блока да ухвати грешку
осим изузетка као екп:
испис (екп.__класа__)
#имплементинг осим блока
осим:
принт ("Нешто није у реду осим грешке у имену")

Оутпут

Екп.__цласс__ враћа име класе изузетка.

Слично томе, погледајмо пример класе „ЗероДивисионЕррор“.

#имплементинг проба блок
покушати:
к = 1/0
испис (к)
#имплементинг осим блока за хватање грешке
осим изузетка као екп:
испис (екп.__класа__)
#имплементинг осим блока
осим:
принт ("Нешто није у реду осим грешке у имену")

Оутпут

Блок елсе

Блок елсе се користи са блоковима проба и изузетака. Блок елсе дефинише део кода који се извршава ако се блок три успешно изврши и не дође до грешке. Понекад ће можда требати да одштампате поруку или извршите функцију када је блок три успешно изведен. Из тог разлога блок елсе можемо применити са три и осим блоковима.

У овом примеру ћемо применити блок елсе у нашој Питхон скрипти.

#имплементинг проба блок
покушати:
к = 1/2
испис (к)
#имплементинг осим блока за хватање грешке
осим изузетка као екп:
испис (екп.__класа__)
#имплементинг елсе блок
иначе:
принт („Све је прошло у реду“)

Оутпут

Блок елсе се извршава након успешног извршавања блока три.

Погледајмо сада још један пример помоћу блока елсе.

#имплементинг проба блок
покушати:
наме = "Означи"
#имплементинг осим блока за хватање грешке
осим изузетка као екп:
испис (екп.__класа__)
#имплементинг елсе блок
иначе:
принт ("Име је:", име)

Оутпут

У горњем примеру, променљива имена је дефинисана унутар блока три и штампа се у блоку елсе.

Коначни блок

Тхе коначно блок садржи део кода који се мора извршити без обзира да ли блок три изазива изузетак. Коначни блок није обавезан и декларише се са блоком три. На пример, ако смо отворили текстуалну датотеку за читање блока три и ако се појави грешка или изузетак, датотеку је боље приложити у коначно блок, чак и ако се грешка догоди. Применимо коначно блок у нашу Питхон скрипту.

#имплементинг проба блок
покушати:
испис (ми_дицт)
#имплементинг осим блока да ухвати грешку
осим изузетка као екп:
испис (екп.__класа__)
#имплементинг коначно блок
коначно:
принт ("Ово је коначно блок")
принт ("Напокон је извршен блок")

Оутпут

У излазу се може видети да блок три покреће изузетак. Међутим, коначно блок се извршава на крају.

Отворимо сада текстуалну датотеку у блоку три, што представља изузетак док је датотека затворена у коначно блоку.

#имплементинг проба блок
покушати:
филеОбј = опен ("мистудент.кмл "," р ")
филеОбј.тражити (-2)
принт (филеОбј.линије за читање ())
#имплементинг осим блока
осим изузетка као екп:
испис (екп.__класа__)
#имплементинг коначно блок
коначно:
филеОбј.Близу()
принт („Датотека је успешно затворена“)

Оутпут

Као што видите, без обзира на грешку у вредности, датотека је успешно затворена у оквиру коначно блока.

Подигните изузетак

Иако се изузеци подижу аутоматски када се појави грешка, у Питхону изузеће можете подићи и ручно. Тхе подићи кључна реч се користи за подизање или уклањање изузетка.

Сада ћемо покренути неке изузетке помоћу кључне речи рисе. У следећем примеру је примењен услов иф за проверу негативних бројева. Ако постоје било који негативни бројеви, тада се поставља изузетак „Ненегативни бројеви нису дозвољени“.

#декларисање две нумеричке променљиве
нум1 = 20
нум2 = -10
иф ((нум1<0) | (num2<0)):
подићи изузетак („Ненегативни бројеви нису дозвољени“)
иначе:
испис (нум1 + нум2)

Оутпут

Закључак

Изузетак се јавља као одговор на грешку у време извођења. У Питхону можемо да се носимо са изузецима користећи блокове три и осим. Овај чланак је кроз разне примере објаснио како се користе изузеци у Питхону.

Како приказати ОСД прекривач у целом екрану Линук апликација и игара
Играње игара преко целог екрана или коришћење апликација у режиму целог екрана без ометања може вам одсећи релевантне системске информације видљиве на...
Топ 5 карата за хватање игара
Сви смо видели и волели стримовање играња на ИоуТубе-у. ПевДиеПие, Јакесептицие и Маркиплиер само су неки од најбољих играча који су зарадили милионе ...
Како развити игру на Линуку
Пре деценију, није много корисника Линука предвидело да ће њихов омиљени оперативни систем једног дана бити популарна платформа за играње комерцијални...