Krajta

Zpracování výjimek v Pythonu

Zpracování výjimek v Pythonu
Když spustíme jakýkoli kód, který obsahuje chybu, pak se chyba zobrazí na výstupu zastavením provádění programu. Některé chyby nemusí uživatelé rozpoznat a mohou pro ně vytvořit nežádoucí situaci. Pokud však lze chybu zobrazit v srozumitelném formátu pro uživatele, je pro ně snadné zjistit důvod chyby. V jakémkoli objektově orientovaném programování, Zkus chytit nebo zkuste chytit-konečně block se používá ke zpracování chyb a jejich zobrazení v čitelném formátu, který se nazývá zpracování výjimek. Jak lze zpracování výjimek ve skriptu Pythonu zobrazit v tomto kurzu.

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.

Hry Nejlepší emulátory herních konzolí pro Linux
Nejlepší emulátory herních konzolí pro Linux
Tento článek uvádí seznam populárního softwaru pro emulaci herních konzolí, který je k dispozici pro Linux. Emulace je vrstva softwarové kompatibility...
Hry Nejlepší linuxové distribuce pro hraní her v roce 2021
Nejlepší linuxové distribuce pro hraní her v roce 2021
Operační systém Linux má za sebou dlouhou cestu od svého původního, jednoduchého vzhledu založeného na serveru. Tento OS se v posledních letech nesmír...
Hry Jak zachytit a streamovat vaši herní relaci v systému Linux
Jak zachytit a streamovat vaši herní relaci v systému Linux
V minulosti bylo hraní her považováno pouze za koníček, ale postupem času došlo v herním průmyslu k obrovskému nárůstu z hlediska technologie a počtu ...