Python

Výnimka pre Python

Výnimka pre Python

Výnimkou je udalosť, ktorá vznikne počas vykonávania programu za účelom ukončenia alebo zmeny normálneho priebehu programu. Napríklad chyba vyvoláva výnimku. Rovnako ako iné programovacie jazyky, aj Python obsahuje mnoho zabudovaných výnimiek. Tieto výnimky sa vyvolávajú, ak sa pri vykonávaní programu vyskytne chyba. Typ chyby určuje, ktorá výnimka sa má vyvolať. Keď dôjde k výnimke, tlmočník Pythonu skontroluje, či je výnimka spracovaná; ak nie, ukončí program. Tento článok vysvetľuje výnimky v Pythone na rôznych príkladoch.

Vstavané výnimky pre Python

Ako sme už spomínali, Python má veľa zabudovaných výnimiek, ktoré sa vyvolajú, keď sa počas vykonávania programu vyskytne chyba. Každá výnimka je odvodená od základnej triedy „Výnimka“. Nasleduje niekoľko zabudovaných výnimiek Pythonu spolu s krátkym popisom každého typu výnimky:

Výnimka Popis
Výnimka Každá výnimka je odvodená z tejto triedy.
ImportError Táto výnimka sa vyvolá pri importovaní konkrétneho modulu a nenájde sa.
EOFError Toto je výnimka na konci súboru. Táto výnimka nastane, keď sa dosiahne koniec súboru.
ZeroDivisionError Táto výnimka sa vyvolá, keď sa číslo vydelí nulou.
KeyError Táto výnimka sa vyvolá, ak je zadaný alebo použitý určitý kľúč, ktorý nie je definovaný v slovníku.
IndexError Táto výnimka sa vyvolá pri pokuse o prístup k indexu sekvencie, ktorý sa nenachádza v rozsahu.
FloatingPointError Táto výnimka sa vyvolá pri zlyhaní operácie s pohyblivou rádovou čiarkou.

Toto sú niektoré zo zabudovaných výnimiek v Pythone. Ďalšie informácie o používaní zabudovaných výnimiek v jazyku Python nájdete v oficiálnej dokumentácii, ktorá sa nachádza na adrese https: // docs.pytón.org / 3 / knižnica / výnimky.html.

Použitie výnimiek v Pythone

Výnimky v Pythone sa vybavujú pomocou príkazu try. Kus kódu, ktorý môže vyvolať alebo vyvolať výnimku, je implementovaný v bloku try. Vedľa bloku try je na spracovanie výnimky implementovaný blok okrem. V bloku s výnimkou zachytíme výnimku a rozhodneme sa, ktorú operáciu vykonáme, keď narazíme na konkrétnu výnimku. Syntax zápisu blokov try a okrem je nasledovná:

skúste:
vykonať operáciu alebo funkciu
okrem:
na zvládnutie výnimky

Teraz implementujeme jednoduchý kód do nášho skriptu Python pomocou blokov try a except.

Tu vytlačíme premennú „name“, ktorá nie je definovaná. To vyvoláva výnimku v bloku kromě.

# implementácia bloku try
skúste:
tlač (meno)
# implementácia bloku okrem
okrem:
tlač („Vyskytla sa výnimka“)

Výkon

Ak nenastane žiadna výnimka, vykoná sa iba blok try. V bloku kromě je vytlačené vyhlásenie, že došlo k výnimke.

Pozrime sa na ďalší príklad, kde definujeme premennú názvu:

# definovanie premennej názvu
name = "Označiť"
# implementácia bloku try
skúste:
tlač (meno)
# implementácia bloku okrem
okrem:
tlač („Vyskytla sa výnimka“)

Výkon

Vo vyššie uvedenom príklade sa vykoná blok try a blok s výnimkou sa preskočí, pretože program nevyvoláva žiadne výnimky. V našom programe môžeme definovať toľko blokov okrem blokov, koľko chceme. Každý blok s výnimkou spracováva konkrétny druh výnimky.

# implementácia bloku try
skúste:
tlač (meno)
#implementácia bloku except na zachytenie chyby názvu
okrem NameError:
print ("Premenná nie je definovaná")
# implementácia bloku okrem
okrem:
print („Niečo sa pokazilo, okrem chyby názvu“)

Výkon

V Pythone je výnimka základnou triedou pre všetky výnimky. Namiesto písania názvu konkrétnej výnimky do bloku kromě môžeme jednoducho napísať „Výnimka“ a týmto spôsobom zachytiť každý typ výnimky.

# implementácia bloku try
skúste:
tlač (meno)
#implementácia bloku except na zachytenie chyby
okrem Výnimky ako exp:
tlač (exp.__trieda__)
# implementácia bloku okrem
okrem:
print („Niečo sa pokazilo, okrem chyby názvu“)

Výkon

Exp.__class__ vráti názov triedy výnimky.

Podobne sa pozrime na príklad triedy „ZeroDivisionError“.

# implementácia bloku try
skúste:
x = 1/0
tlačiť (x)
#implementácia bloku okrem na zachytenie chyby
okrem Výnimky ako exp:
tlač (exp.__trieda__)
# implementácia bloku okrem
okrem:
print („Niečo sa pokazilo, okrem chyby názvu“)

Výkon

The else Block

Blok else sa používa s blokmi try a výnimka. Blok else definuje časť kódu, ktorá sa vykoná, ak sa blok try úspešne vykoná a nenastane chyba. Po úspešnom vykonaní bloku tryskania možno budete musieť vytlačiť správu alebo vykonať funkciu. Z tohto dôvodu môžeme blok else implementovať blokmi try a except.

V tomto príklade implementujeme blok else v našom skripte Python.

# implementácia bloku try
skúste:
x = 1/2
tlačiť (x)
#implementácia bloku okrem na zachytenie chyby
okrem Výnimky ako exp:
tlač (exp.__trieda__)
#implementácia bloku else
inak:
tlač („Všetko prebehlo v poriadku“)

Výkon

Blok else sa vykoná po úspešnom vykonaní bloku try.

Pozrime sa teraz na ďalší príklad pomocou bloku else.

# implementácia bloku try
skúste:
name = "Označiť"
#implementácia bloku except na zachytenie chyby
okrem Výnimky ako exp:
tlač (exp.__trieda__)
#implementácia bloku else
inak:
print ("Meno je:", meno)

Výkon

Vo vyššie uvedenom príklade je premenná názvu definovaná vo vnútri bloku try a je vytlačená v bloku else.

Konečne Block

The konečne blok obsahuje časť kódu, ktorá sa musí vykonať bez ohľadu na to, či blok try vyvolá výnimku. Blok nakoniec je voliteľný a je deklarovaný blokom try. Napríklad, ak sme otvorili textový súbor na čítanie bloku try a nastala chyba alebo výnimka, je lepšie súbor uzavrieť do bloku konečne, aj keď sa chyba vyskytne. Implementujme blok konečne v našom skripte Python.

# implementácia bloku try
skúste:
print (my_dict)
#implementácia bloku except na zachytenie chyby
okrem Výnimky ako exp:
tlač (exp.__trieda__)
# implementácia bloku konečne
nakoniec:
print („Toto je konečne blok“)
print ("Konečný blok je vykonaný")

Výkon

Na výstupe je vidieť, že blok try vyvolá výnimku. Nakoniec sa však blok vykoná na konci.

Teraz otvorme textový súbor v bloku try, ktorý vyvolá výnimku, zatiaľ čo súbor bude uzavretý v bloku konečne.

# implementácia bloku try
skúste:
fileObj = open ("môj študent.xml "," r ")
fileObj.hľadať (-2)
tlačiť (fileObj.readlines ())
# implementácia bloku okrem
okrem Výnimky ako exp:
tlač (exp.__trieda__)
# implementácia bloku konečne
nakoniec:
fileObj.Zavrieť()
print ("Súbor je úspešne uzavretý")

Výkon

Ako vidíte, bez ohľadu na chybu hodnoty bol súbor úspešne uzavretý vo vnútri konečne bloku.

Zvýšiť výnimku

Aj keď sa výnimky vyvolávajú automaticky, keď sa vyskytne chyba, v Pythone môžete výnimky vyvolávať aj ručne. The zvýšiť kľúčové slovo sa používa na vyvolanie alebo vyvolanie výnimky.

Niektoré výnimky teraz vyvoláme pomocou kľúčového slova Raise. V nasledujúcom príklade je implementovaná podmienka if na kontrolu nezáporných čísel. Ak existujú nezáporné čísla, potom sa vyvolá výnimka „Nezáporné čísla nie sú povolené“.

# deklarovanie dvoch číselných premenných
num1 = 20
num2 = -10
if ((číslo1<0) | (num2<0)):
zvýšiť výnimku („Nezáporné čísla nie sú povolené“)
inak:
tlač (num1 + num2)

Výkon

Záver

Výnimka nastane v reakcii na chybu za behu programu. V Pythone môžeme výnimky spracovať pomocou blokov try a except. Tento článok vysvetľuje, ako používať výnimky v Pythone, na rôznych príkladoch.

Hry Ako zobraziť počítadlo FPS v hrách Linux
Ako zobraziť počítadlo FPS v hrách Linux
Hranie na systéme Linux získalo veľký tlak, keď spoločnosť Valve v roku 2012 oznámila podporu systému Linux pre klienta Steam a ich hry. Od tej doby s...
Hry Ako sťahovať a prehrávať Sid Meier's Civilization VI v systéme Linux
Ako sťahovať a prehrávať Sid Meier's Civilization VI v systéme Linux
Úvod do hry Civilization 6 predstavuje moderné poňatie klasického konceptu predstaveného v sérii hier Age of Empires. Myšlienka bola dosť jednoduchá; ...
Hry Ako inštalovať a hrať Doom na Linuxe
Ako inštalovať a hrať Doom na Linuxe
Úvod do Doom Séria Doom vznikla v 90. rokoch po vydaní pôvodného Doomu. Bol to okamžitý hit a od tej doby herná séria získala množstvo ocenení a origi...