Питхон

Руковање изузецима у Питхону

Руковање изузецима у Питхону
Када покренемо било који код који садржи грешку, онда се грешка приказује у излазу заустављањем извршавања програма. Корисници можда неће препознати неке грешке и створити за њих нежељену ситуацију. Али ако се грешка може приказати у разумљивом формату за кориснике, онда је лако да знају разлог грешке. У било ком објектно оријентисаном програмирању, покушај да ухватиш или покушај-ухвати-коначно блок се користи за руковање грешкама и њихово приказивање у читљивом формату који се назива руковање изузецима. Како се руковање изузецима може обавити у Питхон скрипти приказано је у овом упутству.

Синтакса:

покушати:
блокирати…
осим изузетка:
хандлер…
иначе:
блокирати…
коначно:
блокирати…

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

Пример-1: Коришћење једног покушај-осим блока за потврду нумеричких података:

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

#!/ уср / бин / енв питхон3
# Дефинишите блок проба
покушати:
# Узми све податке као низ
наме = инпут ("Унесите своје име: \ н")
# Узмите било који нумерички податак
аге = инт (инпут ("Унесите своје године: \ н"))
# Одштампајте форматиране податке са именом и годинама
принт ("Поздрав% с, имате% с година." %(име година))
# обрађују грешке у уносу
осим (ВалуеЕррор):
# Одштампајте прилагођену поруку о грешци
принт ("Погрешан унос! Морате да укуцате број према годинама.")

Излаз:

Скрипта се извршава два пута у следећем излазу са погрешним уносом и тачним уносом. Први пут када корисник упише 'Тридесет један' као добна вредност за други улаз који има нумеричку вредност, а затим ВалуеЕррор генерише се и порука о грешци се приказује из блока осим. Други пут се не генерише грешка за тачне улазне вредности.

Пример-2: Употреба мултипле осим блока за обраду више грешака:

У овом примеру је приказано како можете да користите више осим блока за обраду више грешака.  У овој скрипти биће обрађене две врсте грешака. Назив датотеке узима се као улазни податак од корисника за читање. Ако датотека не постоји, генерираће се ИОЕррор изузетак и ако датотека постоји, али је празна, покренуће прилагођени изузетак. За ово се у овој скрипти користе два осим блока. Када се не догоди ниједна грешка, тада ће се приказати садржај датотеке.

#!/ уср / бин / енв питхон3
# Увоз ос модула
импорт ос
# Дефинишите блок проба
покушати:
# Узмите име датотеке као улаз
филенаме = инпут ('Унесите име датотеке \ н')
# Отворите датотеку за читање
филе_хандлер = отвори (име датотеке)
# Поставите понтер за претрагу од 0 до краја датотеке
филе_хандлер.тражити (0, ос.СЕЕК_ЕНД)
# Очитајте величину датотеке у бајтовима
сизе = филе_хандлер.Телл ()
# Одштампајте садржај датотеке и број знакова датотеке
ако (величина> 0):
# Поставите показивач на почетак датотеке
филе_хандлер.тражити (0)
# Читајте и чувајте садржај датотеке у променљивој
филе_цонтент = филе_хандлер.читати()
принт ("\ нСадржај датотеке дат испод \ н")
испис (садржај_датотеке)
принт ("Величина датотеке је% д бајта"% сизе)
иначе:
# Повећајте изузетак ако је датотека празна
подићи изузетак ('Датотека нема садржај.')
# Одштампајте поруку о грешци ако датотека не постоји
осим ИОЕррор као грешке:
испис (грешка)
# Одштампајте поруку о грешци ако је датотека празна
осим изузетка као е:
принт ('Грешка:% с'% е)
# Одштампајте поруку ако нема грешке
иначе:
принт ('Нема грешке')

Излаз:

Скрипта се извршава три пута. Први пут је дато име датотеке које не постоји и излаз приказује ИОЕррор поруку. Други пут је дато име датотеке које постоји, али нема садржај и излаз приказује прилагођену поруку. Трећи пут се даје име датотеке које постоји и садржи текст. Излаз приказује садржај датотеке.

Пример-3: Употреба блока три-осим-коначно за руковање грешком поделе

Пример показује употребу блока три-осим-коначно за руковање грешком поделе. Две нумеричке вредности ће се узети као улаз и поделити први улаз са другим улазом у блоку три. Овде се могу појавити две врсте грешака. Један је ВалуеЕррор када ће корисник откуцати било коју вредност без броја, а друга је ЗероДивисионЕррор када ће корисник узети 0 као други улаз.

#!/ уср / бин / енв питхон3
# Дефинишите блок проба
покушати:
# Унесите два броја са пливањем
н1 = флоат (унос ('Унесите број \ н'))
н2 = флоат (унос ('Унесите број \ н'))
# Поделите ове бројеве
подела = н1 / н2
# Руковање грешкама
осим (ЗероДивисионЕррор, ВалуеЕррор):
принт ("Подељено нулом или вредност није број")
# Штампање поруке ако се не догоди грешка
иначе:
принт ("Резултат дељења је% ф"% дељења)
# Штампање поруке ако се грешка догоди или се не догоди
коначно:
принт ("Крај")

Излаз:

Овде се скрипта покреће два пута са оба тачна улаза и са другим улазом као 0. Дакле, генерише се други пут изузетак и приказује поруку о грешци.

Закључак:

Ово упутство приказује основни поступак руковања изузецима у питхон3 за нове кориснике питхона. Читаоци ће моћи да разумеју шта је руковање изузецима и како се применити у питхон скрипти након вежбања горе наведених примера.

Топ 5 ергономских производа за рачунарски миш за Линук
Да ли дуготрајна употреба рачунара изазива бол у зглобу или прстима? Патите ли од укочених зглобова и стално морате да се рукујете? Да ли осећате гору...
Како променити поставке миша и додирне табле помоћу Ксинпут-а у Линук-у
Већина Линук дистрибуција подразумевано испоручује библиотеку „либинпут“ за обраду улазних догађаја на систему. Може да обрађује улазне догађаје и на ...
Замените тастере миша другачије за различити софтвер помоћу Кс-Моусе Буттон Цонтрол
Можда вам је потребан алат који би могао да промени контролу миша са сваком апликацијом коју користите. Ако је то случај, можете испробати апликацију ...