Úvod do zpracování výjimek Pythonu
Výjimky jsou zpracovávány v pythonu pomocí dvou hlavních technik, jedná se o řešení tvrzení a výjimek. V této kapitole si probereme techniky zacházení s pythonovými výjimkami
Každá událost, která odkloní normální provádění programového toku, se nazývá výjimka. Zkuste blok obsahuje možné kódy generující chyby. Pořadí a správa těchto výjimek je proces prováděný blokem kromě, který je vložen na konec každého zkušebního bloku. Jeden zkušební blok může v určitém okamžiku přiřadit více než jednu výjimku, zatímco ostatní bloky spadají do obvyklé sekce toku programu. Celý kód, kde není nutná žádná ochrana bloku pokusu, je umístěn v druhém bloku programu.
Syntax:
try: Executes when suspicious code is executed
except Exception1: Executed when
exception 1 is raised
except Exception2: Executed when exception 2 is raised
else: If there is no exception then execute this block
Standardní seznam výjimek
Výjimka: Všechny výjimky základní třídy
StopIteration: když další metodou iterátoru není namířen žádný objekt, je tato výjimka vyvolána
SystemExit: Zdvihnutý pomocí funkce sys.exit ().
StandardError: Kromě StopIteration a SystemExit to funguje jako základní třída pro všechny vestavěné funkce.
ArithmeticError: Pro všechny numerické chyby fungují tyto výjimky jako základní třída.
OverflowError: U numerického typu, pokud výpočet překročí maximální možnou hodnotu, je tato chyba vyvolána.
FloatingPointError: Selhání plovákové operace tuto chybu způsobí
ZeroDivisionError: Zvýšeno, když v kódu dojde k dělení nulou
AssertionError: Pokud příkaz assert selže, je tato chyba spuštěna
AttributeError: Pokud přiřazení nebo odkaz na atribut selže, vyvolá tuto chybu
EOFErroR: Zvýšeno, když není dosaženo žádného vstupu z žádné funkce a konce souboru
ImportError: Vyvoláno, zatímco selže importní deklarace.
KeyboardInterrupt: Zvýšeno, když dojde k přerušení provádění programu
LookupError: Všechny chyby vyhledávání spadají do této základní třídy
IndexError: Zvýšeno, když index nebyl nalezen
KeyError: Zvýšeno, pokud slovník nedrží uvedenou hodnotu klíče
NameError: Vyráběno pro chybějící identifikátor lokálně nebo globálně v programu
UnboundLocalError: Zvýšeno při použití místní proměnné bez přiřazení jakékoli hodnoty.
EnvironmentError: Základní třída pro chyby zaměřené na prostředí, ke kterým dochází mimo python
IOError: Zvýšeno, zatímco proces vstupu / výstupu byl neúspěšný
SyntaxError: Všechny chyby orientované na syntaxi pythonu jsou řešeny touto výjimkou
IndentationError: Nesprávné odsazení povede k tomuto druhu chyb
SystemError: K tomu dochází v situaci, kdy tlumočník nefunguje podle očekávání, ale tato chyba nevede k tomu, že by pythonový program zmizel z provádění
SystemExit: Je-li funkce sys.exit () používána interpretem pythonu, vede k této výjimce. to způsobí, že kód nebude abnormálně ukončen, nebude-li s ním správně zacházeno.
TypeError: Pokud je operace neplatná pro konkrétní typ dat, je tato chyba vyzvána
ValueError: Když funkce obsahuje platný argument typu, ale pro tento typ argumentu byla zadána nesprávná hodnota
RuntimeError: Pokud některá z výše uvedených kategorií není splněna, je tato chyba vyvolána
NotImplementedError: Vyvinuto, zatímco nefigurativní metoda, která chce být uvedena do praxe ve zděděné třídě, není ve skutečnosti implementována. Pořadí a řízení těchto výjimek je proces prováděný blokem kromě, který je vložen na konec každého zkušebního bloku.
Proces zpracování výjimek v Pythonu
- Výjimka s více výjimkami
- Kromě klauzule bez zmíněné výjimky
- Kromě klauzule s argumenty
Níže budeme hovořit o procesu zpracování výjimek v Pythonu
1. S výjimkou klauzule s více výjimkami
To umožňuje více než jednu výjimku, která je deklarována v jedné výjimce, a všechny tyto deklarované výjimky mohou být vyvolány z této výjimky.
Syntax:
try: Code block1
except(Exception1(, Exception2(, …ExceptionN)))):
Executes when one among the exception happens
else: Executed when no exception is raised
2. S výjimkou ustanovení bez výjimky
Zde lze zpracovat všechny výjimky spuštěné z bloku try.
Syntax:
try:
Code block1
except:
Executes if any type of exception happens
else:
If there is no exception then execute this block
3. Kromě klauzule s argumenty
Skutečná příčina výjimky bude uvedena v hodnotě argumentu
Syntax:
try:
Code block1except
ExceptionType, Argument:
Argument value is printed here
4. Program zpracování výjimek
Syntax:
try:
fh = open("testfile1", "w")
try:
fh.write("Exception handeling")
finally:
print "Going to close the file"
fh.close()
except IOError:
print "Error: can\'t find file or read data"
Závěr
Každý programovací jazyk drží proces vyvolání výjimky, kdykoli čelí neočekávané sadě situací, a python je jednou z nich, která produkuje hluboké techniky pro řešení těchto výjimek, což z něj činí silný základní programovací jazyk.
Doporučený článek
Toto byl průvodce zpracováním výjimek Pythonu. Zde diskutujeme standardní seznam výjimek a zpracováváme je spolu se syntaxí. Další informace naleznete také v dalších navrhovaných článcích -
- Výhody Pythonu
- Python Frameworks
- Vzory v Pythonu
- Kompilátory Pythonu
- Zpracování výjimek ve VB.NET (příklady)
- Slovník v Pythonu
- Události VB.Net