Python

Izjema Python

Izjema Python

Izjema je dogodek, ki nastane med izvajanjem programa za prekinitev ali spremembo običajnega poteka programa. Napaka na primer povzroči izjemo. Tako kot drugi programski jeziki tudi Python vsebuje veliko vgrajenih izjem. Te izjeme se pojavijo, če pride do napake med izvajanjem programa. Vrsta napake določa, katero izjemo je treba uveljaviti. Ko pride do izjeme, tolmač Python preveri, ali je izjema obravnavana; v nasprotnem primeru program prekine. Ta članek na različnih primerih pojasnjuje izjeme v Pythonu.

Vgrajene izjeme Python

Kot smo že omenili, ima Python veliko vgrajenih izjem, ki se pojavijo, ko pride do napake med izvajanjem programa. Vsaka izjema izhaja iz osnovnega razreda "Izjema". Sledi nekaj vgrajenih izjem Python, skupaj s kratkim opisom vsake vrste izjem:

Izjema Opis
Izjema Vsaka izjema izhaja iz tega razreda.
Napaka pri uvozu Ta izjema se pojavi, ko je določen modul uvožen in ga ni mogoče najti.
EOFError To je izjema ob koncu datoteke. Ta izjema se pojavi, ko je dosežen konec datoteke.
ZeroDivisionError Ta izjema se pojavi, če je število deljeno z nič.
KeyError Ta izjema se pojavi, če je določen ali uporabljen določen ključ, ki ni določen v slovarju.
IndexError Ta izjema se pojavi, ko je bil poskusen dostop do indeksa zaporedja, ki ni v obsegu.
FloatingPointError Ta izjema se pojavi, ko operacija s plavajočo vejico ni uspela.

To je nekaj vgrajenih izjem v Pythonu. Za več informacij o uporabi vgrajenih izjem v Pythonu obiščite uradno dokumentacijo na naslovu https: // docs.python.org / 3 / library / izjeme.html.

Uporaba izjem v Pythonu

Izjeme v Pythonu se obdelujejo z uporabo stavka try. Delček kode, ki lahko vrže ali povzroči izjemo, je implementiran v poskusnem bloku. Poleg bloka try je za obdelavo izjeme implementiran blok razen. V bloku razen ujamemo izjemo in se odločimo, katero operacijo bomo izvedli, ko naletimo na to izjemo. Sintaksa zapisovanja poskusov in razen blokov je naslednja:

poskusite:
izvedite operacijo ali funkcijo
razen:
funkcionalnost za obravnavo izjeme

Zdaj bomo v naš skript Python implementirali preprosto kodo z uporabo poskusov in razen blokov.

Tukaj bomo natisnili spremenljivko 'name', ki ni definirana. To sproži izjemo v bloku razen.

#implementing poskusni blok
poskusite:
natisni (ime)
#implementing razen bloka
razen:
print ("Prišlo je do izjeme")

Izhod

Če ne pride do izjeme, se izvede samo poskusni blok. V bloku razen se natisne stavek, da je prišlo do izjeme.

Oglejmo si še en primer, kjer definiramo spremenljivko imena:

#defining ime spremenljivke
name = "Označi"
#implementing poskusni blok
poskusite:
natisni (ime)
#implementing razen bloka
razen:
print ("Prišlo je do izjeme")

Izhod

V zgornjem primeru se izvede poskusni blok in preskoči blok razen, ker program ne sproži nobenih izjem. V našem programu lahko določimo toliko blokov, razen blokov. Vsak blok razen obravnava določeno vrsto izjeme.

#implementing poskusni blok
poskusite:
natisni (ime)
#implementing razen bloka za ulov napake v imenu
razen NameError:
print ("Spremenljivka ni definirana")
#implementing razen bloka
razen:
print ("Prišlo je do napake, razen napake imena")

Izhod

V Pythonu je izjema osnovni razred za vse izjeme. Namesto da vpišemo ime določene izjeme v blok, lahko preprosto napišemo »Izjema« in na ta način ujamemo vse vrste izjem.

#implementing poskusni blok
poskusite:
natisni (ime)
#implementing razen bloka za zajem napake
razen izjema kot exp:
tiskanje (exp.__razred__)
#implementing razen bloka
razen:
print ("Prišlo je do napake, razen napake imena")

Izhod

Exp.__class__ vrne ime razreda izjem.

Podobno si oglejmo primer razreda "ZeroDivisionError".

#implementing poskusni blok
poskusite:
x = 1/0
natisni (x)
#implementing razen bloka za zajem napake
razen izjema kot exp:
tiskanje (exp.__razred__)
#implementing razen bloka
razen:
print ("Prišlo je do napake, razen napake imena")

Izhod

Blok else

Blok else se uporablja z bloki in poskusi. Blok else določa del kode, ki se izvede, če se poskusni blok uspešno izvede in ne pride do napake. Včasih bo morda treba natisniti sporočilo ali izvesti funkcijo, ko bo poskusni blok uspešno izveden. Iz tega razloga lahko izvedemo blok else s poskusi in razen blokov.

V tem primeru bomo v skriptu Python implementirali blok else.

#implementing poskusni blok
poskusite:
x = 1/2
natisni (x)
#implementing razen bloka za zajem napake
razen izjema kot exp:
tiskanje (exp.__razred__)
#implementing blok else
sicer:
print ("Vse je šlo v redu")

Izhod

Blok else se izvede po uspešni izvedbi poskusnega bloka.

Poglejmo si zdaj še en primer z uporabo bloka else.

#implementing poskusni blok
poskusite:
name = "Označi"
#implementing razen bloka za zajem napake
razen izjema kot exp:
tiskanje (exp.__razred__)
#implementing blok else
sicer:
print ("Ime je:", ime)

Izhod

V zgornjem primeru je spremenljivka imena definirana znotraj poskusnega bloka in je natisnjena v bloku else.

Končni blok

The končno blok vsebuje delček kode, ki ga je treba izvršiti ne glede na to, ali poskusni blok povzroči izjemo. Končni blok ni obvezen in se objavi z blokom try. Če smo na primer odprli besedilno datoteko za branje poskusnega bloka in se pojavi napaka ali izjema, je bolje, da datoteko zapremo v zadnji blok, tudi če pride do napake. Izvedimo zaključni blok v našem skriptu Python.

#implementing poskusni blok
poskusite:
natisni (my_dict)
#implementing razen bloka za zajem napake
razen izjema kot exp:
tiskanje (exp.__razred__)
#implementing the final block
končno:
print ("To je zadnji blok")
print ("Končni blok je izveden")

Izhod

V izhodu je razvidno, da poskusni blok sproži izjemo. Vendar se zaključni blok izvede na koncu.

Zdaj odprimo besedilno datoteko v poskusnem bloku, ki sproži izjemo, medtem ko je datoteka, zaprta v zadnji blok.

#implementing poskusni blok
poskusite:
fileObj = odprto ("mystudent.xml "," r ")
fileObj.iskati (-2)
print (datotekaObj.bralne vrstice ())
#implementing razen bloka
razen izjema kot exp:
tiskanje (exp.__razred__)
#implementing the final block
končno:
fileObj.zapri ()
print ("Datoteka je uspešno zaprta")

Izhod

Kot lahko vidite, je bila datoteka, ne glede na napako z vrednostjo, uspešno zaprta znotraj bloka final.

Povečajte izjemo

Čeprav se izjeme samodejno sprožijo, ko pride do napake, lahko v Pythonu izjeme dvignete tudi ročno. The dvigniti ključna beseda se uporablja za dvig ali vrnitev izjeme.

Zdaj bomo z uporabo ključne besede dvignili nekaj izjem. V naslednjem primeru je izveden pogoj if za preverjanje nenegativnih števil. Če obstajajo kakršna koli negativna števila, se vzpostavi izjema »Nenegativna števila niso dovoljena«.

#declaring dve številski spremenljivki
število1 = 20
število2 = -10
if ((num1<0) | (num2<0)):
dvigniti izjemo ("Nenegativne številke niso dovoljene")
sicer:
tiskanje (num1 + num2)

Izhod

Zaključek

Izjema se pojavi kot odgovor na napako med izvajanjem. V Pythonu lahko obvladujemo izjeme z uporabo poskusov in razen blokov. Ta članek je v različnih primerih pojasnil, kako uporabljati izjeme v Pythonu.

Zaslonska sledilna ploščica in kazalec miške AppyMouse za tablične računalnike Windows
Uporabniki tabličnih računalnikov pogosto zgrešijo miškin kazalec, še posebej kadar običajno uporabljajo prenosne računalnike. Pametni telefoni in tab...
Srednji gumb miške ne deluje v sistemu Windows 10
The srednji gumb miške vam pomaga, da se pomikate po dolgih spletnih straneh in zaslonih z veliko podatkov. Če se to ustavi, boste na koncu uporabili ...
Kako spremeniti levi in ​​desni gumb miške na računalniku z operacijskim sistemom Windows 10
Povsem normalno je, da so vse naprave računalniške miške ergonomsko zasnovane za desničarje. Na voljo pa so miške, ki so posebej zasnovane za levičarj...