Krajta

Výjimka v Pythonu

Výjimka v Pythonu

Výjimkou je událost, která nastane během provádění programu za účelem ukončení nebo změny normálního toku programu. Například chyba vyvolá výjimku. Stejně jako ostatní programovací jazyky obsahuje Python mnoho vestavěných výjimek. Tyto výjimky jsou vyvolány, pokud dojde k chybě při provádění programu. Typ chyby určuje, která výjimka má být vyvolána. Když dojde k výjimce, překladač Pythonu zkontroluje, zda je výjimka zpracována; pokud ne, program se ukončí. Tento článek vysvětluje výjimky v Pythonu pomocí různých příkladů.

Integrované výjimky Pythonu

Jak již bylo řečeno, Python má mnoho předdefinovaných výjimek, které jsou vyvolány, když dojde k chybě během provádění programu. Každá výjimka je odvozena od základní třídy „Výjimka“. Následuje několik integrovaných výjimek Pythonu spolu s krátkým popisem jednotlivých typů výjimek:

Výjimka Popis
Výjimka Každá výjimka je odvozena z této třídy.
ImportError Tato výjimka je vyvolána při importu konkrétního modulu a není nalezena.
Chyba EOFE Toto je výjimka na konci souboru. K této výjimce dochází, když je dosaženo konce souboru.
ZeroDivisionError Tato výjimka je vyvolána, když je číslo vyděleno nulou.
KeyError Tato výjimka se vyvolá, pokud je zadán nebo použit určitý klíč, který není definován uvnitř slovníku.
IndexError Tato výjimka se vyvolá při pokusu o přístup k indexu sekvence, který není v rozsahu.
FloatingPointError Tato výjimka se vyvolá, když se operace s plovoucí desetinnou čárkou nezdařila.

Toto jsou některé z integrovaných výjimek v Pythonu. Navštivte oficiální dokumentaci, kde najdete další informace o používání vestavěných výjimek v Pythonu, umístěných na https: // docs.krajta.org / 3 / knihovna / výjimky.html.

Použití výjimek v Pythonu

Výjimky v Pythonu jsou zpracovávány pomocí příkazu try. Kus kódu, který může vyvolat nebo vyvolat výjimku, je implementován v bloku try. Vedle bloku try je implementován blok kromě pro zpracování výjimky. V bloku výjimky zachytíme výjimku a rozhodneme se, jakou operaci provést, když narazíme na tuto konkrétní výjimku. Syntaxe psaní bloků try a kromě je následující:

Snaž se:
provést operaci nebo funkci
až na:
funkce pro zpracování výjimky

Nyní implementujeme jednoduchý kód do našeho skriptu Pythonu pomocí bloků try a except.

Zde vytiskneme proměnnou „name“, která není definována. Tím se vyvolá výjimka v bloku kromě.

# implementace bloku try
Snaž se:
tisk (jméno)
# implementace bloku kromě
až na:
tisk („Došlo k výjimce“)

Výstup

Pokud nedojde k žádné výjimce, provede se pouze blok try. V bloku s výjimkou je vytištěno prohlášení, že došlo k výjimce.

Podívejme se na další příklad, kde definujeme proměnnou názvu:

# definování proměnné názvu
name = "Označit"
# implementace bloku try
Snaž se:
tisk (jméno)
# implementace bloku kromě
až na:
tisk („Došlo k výjimce“)

Výstup

Ve výše uvedeném příkladu se provede blok try a blok výjimky se přeskočí, protože program nevyvolává žádné výjimky. V našem programu můžeme definovat tolik bloků kromě bloků, kolik chceme. Každý blok kromě zpracovává určitý druh výjimky.

# implementace bloku try
Snaž se:
tisk (jméno)
#implementování bloku výjimky k zachycení chyby názvu
kromě NameError:
print ("Proměnná není definována")
# implementace bloku kromě
až na:
print („Něco se pokazilo, kromě chyby jména“)

Výstup

V Pythonu je výjimka základní třídou pro všechny výjimky. Místo psaní názvu konkrétní výjimky do bloku výjimky můžeme jednoduše napsat „Výjimku“ a tímto způsobem zachytit každý typ výjimky.

# implementace bloku try
Snaž se:
tisk (jméno)
#implementování bloku výjimky k zachycení chyby
kromě Výjimky jako exp:
tisk (zk.__třída__)
# implementace bloku kromě
až na:
print („Něco se pokazilo, kromě chyby jména“)

Výstup

Exp.__class__ vrací název třídy výjimky.

Podobně se podívejme na příklad třídy „ZeroDivisionError“.

# implementace bloku try
Snaž se:
x = 1/0
tisk (x)
#implementování bloku výjimky k zachycení chyby
kromě Výjimky jako exp:
tisk (zk.__třída__)
# implementace bloku kromě
až na:
print („Něco se pokazilo, kromě chyby jména“)

Výstup

The else Block

Blok else se používá s bloky try a výjimka. Blok else definuje část kódu, která se provede, pokud se blok try provede úspěšně a nedojde k žádné chybě. Po úspěšném provedení bloku try může být někdy nutné vytisknout zprávu nebo provést funkci. Z tohoto důvodu můžeme implementovat blok else pomocí bloků try a except.

V tomto příkladu implementujeme blok else v našem skriptu Python.

# implementace bloku try
Snaž se:
x = 1/2
tisk (x)
#implementing the except block to catch the error
kromě Výjimky jako exp:
tisk (zk.__třída__)
# implementace bloku else
jiný:
tisk („Všechno proběhlo v pořádku“)

Výstup

Blok else se provede po úspěšném provedení bloku try.

Podívejme se nyní na další příklad pomocí bloku else.

# implementace bloku try
Snaž se:
name = "Označit"
#implementování bloku výjimky k zachycení chyby
kromě Výjimky jako exp:
tisk (zk.__třída__)
# implementace bloku else
jiný:
print ("Jméno je:", jméno)

Výstup

Ve výše uvedeném příkladu je proměnná názvu definována uvnitř bloku try a je vytištěna v bloku else.

Konečně Block

The Konečně blok obsahuje část kódu, která musí být provedena bez ohledu na to, zda blok try vyvolá výjimku. Konečný blok je volitelný a je deklarován pomocí bloku try. Například pokud jsme otevřeli textový soubor ke čtení bloku try a vyvolá chybu nebo výjimku, je lepší soubor uzavřít do bloku final, i když k chybě dojde. Implementujme konečný blok v našem skriptu Pythonu.

# implementace bloku try
Snaž se:
tisk (my_dict)
#implementování bloku výjimky k zachycení chyby
kromě Výjimky jako exp:
tisk (zk.__třída__)
#implementování konečného bloku
Konečně:
print ("Toto je konečný blok")
print ("Konečně je blok spuštěn")

Výstup

Ve výstupu je vidět, že blok try vyvolává výjimku. Nakonec se však blok nakonec provede na konci.

Pojďme nyní otevřít textový soubor v bloku try, což vyvolá výjimku, zatímco soubor uzavřený v bloku finally.

# implementace bloku try
Snaž se:
fileObj = open ("mystudent.xml "," r ")
fileObj.hledat (-2)
tisk (fileObj.readlines ())
# implementace bloku kromě
kromě Výjimky jako exp:
tisk (zk.__třída__)
#implementace konečného bloku
Konečně:
fileObj.zavřít()
tisk ("Soubor je úspěšně uzavřen")

Výstup

Jak vidíte, bez ohledu na chybu hodnoty byl soubor úspěšně uzavřen uvnitř bloku finally.

Zvyšte výjimku

Ačkoli se výjimky vyvolávají automaticky, když dojde k chybě, v Pythonu můžete výjimky vyvolat také ručně. The vyzdvihnout klíčové slovo se používá k vyvolání nebo vyvolání výjimky.

Nyní pomocí klíčového slova raise vyvoláme některé výjimky. V následujícím příkladu je podmínka if implementována ke kontrole nezáporných čísel. Pokud existují záporná čísla, je vyvolána výjimka „Nezáporná čísla nejsou povolena“.

# deklarování dvou číselných proměnných
num1 = 20
num2 = -10
if ((číslo1<0) | (num2<0)):
zvýšit výjimku („Nezáporná čísla nejsou povolena“)
jiný:
tisk (číslo1 + číslo2)

Výstup

Závěr

Výjimka nastane v reakci na chybu za běhu. V Pythonu můžeme zpracovat výjimky pomocí bloků try a except. Tento článek vysvětlil, jak pomocí výjimek v Pythonu použít různé příklady.

Jak používat Xdotool ke stimulaci kliknutí myší a klávesových zkratek v systému Linux
Xdotool je bezplatný a otevřený nástroj příkazového řádku pro simulaci kliknutí myší a stisknutí kláves. Tento článek se bude věnovat krátkému průvodc...
Top 5 ergonomických produktů pro počítačové myši pro Linux
Způsobuje dlouhodobé používání počítače bolest zápěstí nebo prstů? Trpíte ztuhlými klouby a neustále si musíte třást ruce? Cítíte pálivou bolest pokaž...
Jak změnit nastavení myši a touchpadu pomocí Xinput v Linuxu
Většina linuxových distribucí je ve výchozím nastavení dodávána s knihovnou „libinput“ pro zpracování vstupních událostí v systému. Může zpracovávat v...