Python Zkuste kromě
Blok try
umožňuje testovat blok kódu na chyby.
Blok except
vám umožní zvládnout chybu.
Blok else
vám umožní spustit kód, když není žádná chyba.
Blok finally
vám umožňuje spouštět kód bez ohledu na výsledek bloků try-and Mimo.
Zpracování výjimek
Když dojde k chybě nebo výjimce, jak tomu říkáme, Python se normálně zastaví a vygeneruje chybovou zprávu.
Tyto výjimky lze zpracovat pomocí try
příkazu:
Příklad
Blok try
vygeneruje výjimku, protože x
není definován:
try:
print(x)
except:
print("An exception occurred")
Protože blok try vyvolá chybu, bude proveden blok kromě.
Bez bloku try se program zhroutí a zobrazí chybu:
Příklad
Tento příkaz vyvolá chybu, protože x
není definován:
print(x)
Mnoho výjimek
Můžete definovat tolik bloků výjimek, kolik chcete, např. pokud chcete provést speciální blok kódu pro speciální druh chyby:
Příklad
Vytiskněte jednu zprávu, pokud blok try vyvolá a NameError
a další pro jiné chyby:
try:
print(x)
except NameError:
print("Variable x
is not defined")
except:
print("Something else went
wrong")
Jiný
Klíčové slovo můžete použít else
k definování bloku kódu, který se má provést, pokud nebyly vyvolány žádné chyby:
Příklad
V tomto příkladu try
blok negeneruje žádnou chybu:
try:
print("Hello")
except:
print("Something went
wrong")
else:
print("Nothing went wrong")
Konečně
Blok finally
, pokud je zadán, bude proveden bez ohledu na to, zda blok try vyvolá chybu nebo ne.
Příklad
try:
print(x)
except:
print("Something went
wrong")
finally:
print("The 'try except' is finished")
To může být užitečné pro uzavření objektů a vyčištění zdrojů:
Příklad
Zkuste otevřít a zapisovat do souboru, do kterého nelze zapisovat:
try:
f = open("demofile.txt")
try:
f.write("Lorum Ipsum")
except:
print("Something went wrong when writing to the file")
finally:
f.close()
except:
print("Something went wrong when opening the
file")
Program může pokračovat, aniž by nechal otevřený objekt souboru.
Vyvolejte výjimku
Jako vývojář Pythonu se můžete rozhodnout vyvolat výjimku, pokud nastane podmínka.
K vyvolání (nebo vyvolání) výjimky použijte raise
klíčové slovo.
Příklad
Vyvolejte chybu a zastavte program, pokud je x menší než 0:
x = -1
if x < 0:
raise Exception("Sorry, no numbers below
zero")
Klíčové raise
slovo se používá k vyvolání výjimky.
Můžete definovat, jaký druh chyby se má upozornit, a text, který se má uživateli vytisknout.
Příklad
Zvyšte TypeError, pokud x není celé číslo:
x = "hello"
if not type(x) is int:
raise TypeError("Only
integers are allowed")