Syntaxe:
Snaž se:blok…
kromě výjimky:
psovod…
jiný:
blok…
Konečně:
blok…
Zde, pokud při provádění příkazů dojde k jakékoli chybě Snaž se blok, pak se vygeneruje výjimka a chyba se hodí na odpovídající až na psovod. V jednom lze vygenerovat více chyb Snaž se blok a pak musíte napsat více až na manipulátory. Prohlášení jiný blok se provede, pokud v systému nenastane chyba Snaž se blok. Prohlášení Konečně blok se provede, pokud dojde k chybě nebo ne. Pro zpracování výjimek pomocí jiný a Konečně bloky nejsou podstatné. Různé typy zpracování výjimek v pythonu jsou vysvětleny v další části tutoriálu.
Příklad 1: Použití jediného bloku try-kromě k ověření číselných dat:
Tento příklad ukazuje velmi jednoduché použití zpracování výjimek v Pythonu. V Snaž se bloku, od uživatele budou převzaty dva vstupy, jeden je řetězcová hodnota a druhý číselná hodnota. Pokud uživatel zadá jakoukoli hodnotu řetězce místo číselné hodnoty pro druhý vstup, pak se ValueError výjimku vygeneruje python3 a od uživatele se zobrazí vlastní chybová zpráva až na blok.
#!/ usr / bin / env python3# Definujte try blok
Snaž se:
# Vezměte všechna data jako řetězec
name = input ("Zadejte své jméno: \ n")
# Vezměte jakékoli číselné údaje
age = int (vstup ("Zadejte svůj věk: \ n"))
# Vytiskněte naformátovaná data se jménem a věkem
print ("Dobrý den% s, je vám% s let." %(jméno věk))
# zpracovat chyby vstupu
kromě (ValueError):
# Tisknout vlastní chybovou zprávu
print ("Chybný vstup! Musíte zadat číslo podle svého věku.")
Výstup:
Skript se provede dvakrát v následujícím výstupu se špatným vstupem a správným vstupem. Poprvé, když uživatel zadá 'Třicet jedna' jako věková hodnota pro druhý vstup, který přebírá číselnou hodnotu, pak a ValueError se vygeneruje a chybová zpráva se zobrazí z bloku kromě. Podruhé se pro správné vstupní hodnoty nevygeneruje žádná chyba.
Příklad 2: Použití více bloku kromě bloku pro zpracování více chyb:
V tomto příkladu je ukázáno, jak můžete použít více bloků kromě bloku ke zpracování více chyb. V tomto skriptu budou zpracovány dva typy chyb. Název souboru je považován za vstup od uživatele ke čtení. Pokud soubor neexistuje, vygeneruje se chyba IO výjimka a pokud soubor existuje, ale je prázdný, vyvolá vlastní výjimku. Za tímto účelem se v tomto skriptu používají dva bloky kromě. Pokud k žádné chybě nedojde, zobrazí se obsah souboru.
#!/ usr / bin / env python3# Import os modulu
import os
# Definujte blok try
Snaž se:
# Vezměte název souboru jako vstup
název souboru = vstup ('Zadejte název souboru \ n')
# Otevřete soubor ke čtení
file_handler = open (název souboru)
# Nastavte hledače od 0 do konce souboru
file_handler.hledat (0, os.SEEK_END)
# Přečíst velikost souboru v bajtech
size = file_handler.sdělit()
# Vytiskněte obsah souboru a počet znaků v souboru
pokud (velikost> 0):
# Nastavte pontera na začátek souboru
file_handler.hledat (0)
# Číst a ukládat obsah souboru do proměnné
file_content = file_handler.číst()
print ("\ nObsah níže uvedeného souboru \ n")
tisk (soubor_obsah)
print ("Velikost souboru je% d bajtů"% size)
jiný:
# Zvyšte výjimku, pokud je soubor prázdný
raise Exception ('Soubor nemá žádný obsah.')
# Vytiskněte chybovou zprávu, pokud soubor neexistuje
kromě IOError jako chyba:
tisk (chyba)
# Pokud je soubor prázdný, vytiskněte chybovou zprávu
kromě Výjimky jako e:
print ('Chyba:% s'% e)
# Vytiskněte zprávu, pokud nedojde k žádné chybě
jiný:
tisk ('Žádná chyba se nevyskytuje')
Výstup:
Skript se spustí třikrát. Poprvé se zadá název souboru, který neexistuje, a výstup zobrazí zprávu IOError. Podruhé je uveden název souboru, který existuje, ale nemá žádný obsah a výstup zobrazuje vlastní zprávu. Potřetí je uveden název souboru, který existuje a obsahuje text. Výstup ukazuje obsah souboru.
Příklad 3: Použití bloku try-except-nakonec ke zpracování chyby dělení
Příklad ukazuje použití bloku try-except-konečne ke zpracování chyby dělení. Jako vstup budou brány dvě číselné hodnoty, které v bloku try vydělí první vstup druhým vstupem. Zde se mohou vyskytnout dva typy chyb. Jedním z nich je ValueError když uživatel zadá libovolnou hodnotu bez čísla a další je ZeroDivisionError kdy uživatel vezme 0 jako druhý vstup.
#!/ usr / bin / env python3# Definujte blok try
Snaž se:
# Zadejte dvě čísla float
n1 = float (vstup ('Zadejte číslo \ n'))
n2 = float (vstup ('Zadejte číslo \ n'))
# Rozdělte tato čísla
dělení = n1 / n2
# Zpracovat chyby
kromě (ZeroDivisionError, ValueError):
tisk ("Děleno nulovou chybou nebo Hodnota není číslo")
# Tiskněte zprávu, pokud nedojde k žádné chybě
jiný:
tisk ("Výsledkem rozdělení je% f"% rozdělení)
# Vytiskněte zprávu, pokud dojde k chybě nebo nenastane
Konečně:
tisk („Konec“)
Výstup:
Zde je skript spuštěn dvakrát se správnými vstupy a s druhým vstupem jako 0. Vygeneruje se tedy podruhé výjimka a zobrazí se chybová zpráva.
Závěr:
Tento kurz ukazuje základní proces zpracování výjimek v python3 pro nové uživatele pythonu. Čtenáři budou po procvičení výše uvedených příkladů schopni porozumět tomu, co je zpracování výjimek a jak aplikovat v python skriptu.