Jak Nejlépe Využít Zkusit Až v Python – Zejména pro Začátečníky
V Pythonu programování, zpracování výjimek umožňuje programátor povolit řízení toku. A nemá. vestavěných výjimek pro zachycení chyb v případě přerušení kódu. Použití try-s výjimkou je nejběžnější a přirozený způsob řešení neočekávaných chyb spolu s mnoha dalšími konstrukcemi zpracování výjimek. V tomto tutoriálu se seznámíte s některými z nejlepších technik, které můžete vyzkoušet-s výjimkou Pythonu.
zpracování chyb nebo zpracování výjimek v Pythonu lze vynutit nastavením výjimek. Pomocí bloku try můžete implementovat výjimku a zpracovat chybu uvnitř bloku kromě. Kdykoli se kód rozbije uvnitř bloku try, zastaví se pravidelný tok kódu a ovládací prvek se přepne na blok s výjimkou pro zpracování chyby.
také číst-učit Python zpracování výjimek od nuly.
Proč používat klauzuli Try-Except / Try-Except-else? S pomocí try-except a try-except-else se můžete vyhnout mnoha neznámým problémům, které by mohly vzniknout z vašeho kódu. Například kód Pythonu pomocí stylu LBYL (podívejte se, než skočíte) může vést k závodním podmínkám. Zde vás může zachránit klauzule try-Exception. Také existují případy, kdy váš kód kriticky závisí na některých informacích, které by mohly být zastaralé až do doby, kdy je obdržíte. Například kód volání do os.cesta.existuje nebo fronta.full může selhat, protože tyto funkce mohou vrátit data, která se stanou zastaralými v době, kdy je používáte. Moudřejší volbou by zde bylo sledovat styl try-except-else ve vašem kódu a spolehlivěji spravovat výše uvedené případy.
zvyšování výjimek je také přípustné v Pythonu. To znamená, že můžete hodit nebo zvýšit výjimku, kdykoli je to potřeba. Můžete to udělat jednoduše voláním z kódu. Po zvednutí výjimka zastaví aktuální provedení jako obvykle a půjde dále nahoru v zásobníku hovorů, dokud nebude zpracována.
Proč používat výjimky? Pomáhají nejen řešit populární problémy, jako jsou závodní podmínky, ale jsou také velmi užitečné při kontrole chyb v oblastech, jako jsou smyčky, zpracování souborů, komunikace s databází, přístup k síti a tak dále.
proto se budeme zabývat širšími problémy a poskytneme řešení v tomto příspěvku. Vezměte prosím na vědomí, že zpracování výjimek je umění, které vám přináší obrovské pravomoci psát robustní a kvalitní kód. Tak, připravte se na přečtení některých klíčových poznámek o výjimkách spolu s nejlepšími způsoby, jak s nimi zacházet.
musí číst-vše, co byste měli vědět o Pythonu Copy File .
Python: Tipy k Použití Zkuste-s Výjimkou, Zkuste-s Výjimkou-Ostatní, a Více
- Jak zvládnout libovolný výjimky
- Zachytit více výjimek v jednom s výjimkou bloku
- Zpracování více výjimek, s jednou výjimkou bloku
- Re-zvyšování výjimky v Pythonu
- Při použití jiného ustanovení
- využít
- Použít Jako klíčové slovo chytit zvláštní výjimka typy
- Nejlepší praxe pro ruční zvyšování výjimky
- Jak přeskočit přes chyby a pokračovat v realizaci
- nejčastější chyby výjimku v Pythonu
- Příklady nejčastějších výjimek v Pythonu
1. Jak zacházet s libovolnou výjimkou
někdy možná budete potřebovat způsob, jak povolit libovolnou výjimku a také chcete mít možnost zobrazit zprávu o chybě nebo výjimce.
je snadno dosažitelný pomocí výjimek Pythonu. Zkontrolujte níže uvedený kód. Během testování můžete kód umístit do bloku try v níže uvedeném příkladu.
try: #your codeexcept Exception as ex: print(ex)
zpět na začátek
2. Chytit více výjimek v jednom kromě bloku
můžete chytit více výjimek v jednom kromě bloku. Viz níže uvedený příklad.
except (Exception1, Exception2) as e: pass
Vezměte prosím na vědomí, že výjimky z proměnné můžete oddělit čárkou, která je použitelná v Pythonu 2.6 / 2.7. Ale v Pythonu 3 to nejde. Takže byste měli raději použít klíčové slovo.
zpět na začátek
3. Zpracování více výjimek s jedním kromě bloku
existuje mnoho způsobů, jak zpracovat více výjimek. První z nich vyžaduje umístění všech výjimek, které se pravděpodobně vyskytnou ve formě n-tice. Viz níže.
try: file = open('input-file', 'open mode')except (IOError, EOFError) as e: print("Testing multiple exceptions. {}".format(e.args))
další metodou je zpracování každé výjimky ve vyhrazeném bloku kromě. Můžete přidat tolik kromě bloků podle potřeby. Viz níže uvedený příklad.
try: file = open('input-file', 'open mode')except EOFError as ex: print("Caught the EOF error.") raise exexcept IOError as e: print("Caught the I/O error.") raise ex
poslední, ale v neposlední řadě je použití atributu except bez uvedení jakéhokoli výjimky.
try: file = open('input-file', 'open mode')except: # In case of any unhandled error, throw it away raise
tato metoda může být užitečná, pokud nemáte ponětí o výjimce, kterou může váš program vyvolat.
zpět na začátek
4. Opakované zvyšování výjimek v Pythonu
výjimky, jakmile jsou zvednuty, se pohybují až k metodám volání, dokud nebudou zpracovány. I když můžete přidat kromě klauzule, která by mohla mít hovor bez jakéhokoli argumentu. Výsledkem bude opakování výjimky.
viz níže uvedený příkladový kód.
try: # Intentionally raise an exception. raise Exception('I learn Python!')except: print("Entered in except.") # Re-raise the exception. raise
Výstup:
Entered in except.Traceback (most recent call last): File "python", line 3, in <module>Exception: I learn Python!
Zpět na začátek
5. Kdy použít klauzuli else
použijte klauzuli else hned po bloku try-except. Klauzule else bude zasažena, pouze pokud nebude vyvolána žádná výjimka. Prohlášení else by mělo vždy předcházet krom bloků.
v blocích else můžete přidat kód, který chcete spustit, když nedošlo k žádným chybám.
viz níže uvedený příklad. V tomto vzorku můžete vidět nekonečně běžící smyčku. Kód žádá o zadání uživatele a poté jej analyzuje pomocí vestavěné funkce. Pokud uživatel zadá nulovou hodnotu, zasáhne blok kromě. V opačném případě bude kód protékat blokem else.
while True: # Enter integer value from the console. x = int(input()) # Divide 1 by x to test error cases try: result = 1 / x except: print("Error case") exit(0) else: print("Pass case") exit(1)
zpět na začátek
6. Využijte
Pokud máte kód, který chcete spustit ve všech situacích, napište jej do . Python bude vždy spustit instrukce kódované v. Je to nejběžnější způsob čištění úkolů. Můžete se také ujistit, že úklid projde.
chyba je zachycena klauzulí try. Po spuštění kódu v bloku s výjimkou se spustí instrukce v bloku.
Vezměte prosím na vědomí, že a bude vždy spuštěn, i když jste se vrátili před ním.
viz níže uvedený příklad.
try: # Intentionally raise an error. x = 1 / 0except: # Except clause: print("Error occurred")finally: # Finally clause: print("The is hit")
výstup:
Error occurredThe is hit
zpět na začátek
7. Použít Jako klíčové slovo chytit zvláštní výjimka typy
pomocí <identifikátor>, můžete vytvořit nový objekt. A můžete také objekt výjimky. Zde, níže uvedený příklad, vytváříme objekt IOError a poté jej použijeme v klauzuli.
try: # Intentionally raise an error. f = open("no-file")except IOError as err: # Creating IOError instance for book keeping. print("Error:", err) print("Code:", err.errno)
Výstup:
('Error:', IOError(2, 'No such file or directory'))('Code:', 2)
Zpět na začátek
8. Osvědčené postupy pro ruční zvyšování výjimek
Vyhněte se zvyšování obecných výjimek, protože pokud tak učiníte, musí být zachyceny i všechny další konkrétnější výjimky. Proto, nejlepší praxí je zvýšit nejkonkrétnější výjimku v blízkosti vašeho problému.
špatný příklad.
def bad_exception(): try: raise ValueError('Intentional - do not want this to get caught') raise Exception('Exception to be handled') except Exception as error: print('Inside the except block: ' + repr(error)) bad_exception()
Výstup:
Inside the except block: ValueError('Intentional - do not want this to get caught',)
Nejlepší Praxe:
Zde předkládáme konkrétní typ výjimky, není obecný. A také používáme možnost args k tisku nesprávných argumentů, pokud existují. Podívejme se na níže uvedený příklad.
try: raise ValueError('Testing exceptions: The input is in incorrect order', 'one', 'two', 'four') except ValueError as err: print(err.args)
Výstup:
('Testing exceptions: The input is in incorrect order', 'one', 'two', 'four')
Zpět na začátek
9. Jak přeskočit chyby a pokračovat v provádění
V ideálním případě byste to neměli dělat. Ale pokud stále chcete dělat, postupujte podle níže uvedeného kódu a podívejte se na správný přístup.
try: assert Falseexcept AssertionError: passprint('Welcome to Prometheus!!!')
Výstup:
Welcome to Prometheus!!!
Zpět na začátek
Nyní se podívat na některé z nejčastějších výjimky Pythonu, a jejich příklady.
nejčastější chyby výjimky
- IOError-dochází k chybám, jako je soubor se neotevře.
- ImportError – pokud modul python nelze načíst nebo lokalizovat.
- ValueError-nastane, pokud funkce získá argument správného typu, ale nevhodnou hodnotu.
- KeyboardInterrupt – To bude hit, když uživatel zadá přerušit klíč (tj. Control-C nebo klávesa Del)
- EOFError – To zvednou, pokud vstupní funkce (input()/raw_input()) hit end-of-file stavu (EOF), ale bez čtení jakékoliv údaje.
Zpět na začátek
Příklady nejčastějších výjimek
except IOError:print('Error occurred while opening the file.')except ValueError:print('Non-numeric input detected.')except ImportError:print('Unable to locate the module.')except EOFError:print('Identified EOF error.')except KeyboardInterrupt:print('Wrong keyboard input.')except:print('An error occurred.')
Zpět na začátek
Shrnutí – Jak Nejlépe Využít Zkuste-s Výjimkou v Pythonu
při programování, chyby jsou nevyhnutelné. Je to fakt, který nikdo nemůže ignorovat. A může existovat mnoho důvodů pro chyby, jako je špatný vstup uživatele, nedostatečné oprávnění k souboru,nedostupnost síťového zdroje, nedostatečná paměť nebo pravděpodobně chyba programátora.
Každopádně, to vše mohou být zpracovány, pokud váš kód používá zpracování výjimek a provádět je s pojmy, jako je zkuste-s výjimkou, nebo tr-kromě jiného-zkuste-s výjimkou-konečně. Doufám, že byste si užili čtení výše uvedeného tutoriálu.
Pokud se vám příspěvek líbil, nenechte si ujít jeho sdílení s přáteli a na sociálních médiích (facebook/twitter).
nejlepší,
TechBeamers.