Chyba v Pythonu může být dvou typů, tj. chyby syntaxe a výjimky. Chyby jsou problémy v programu, kvůli kterým program zastaví provádění. Na druhou stranu jsou výjimky vyvolány, když nastanou nějaké vnitřní události, které změní normální tok programu.
Poznámka: Další informace najdete v tématu Chyby a výjimky v Pythonu
Některé z běžných chyb výjimek jsou:
- IOError: pokud soubor nelze otevřít KeyboardInterrupt: když uživatel stiskne nevyžadovanou klávesu ValueError: když vestavěná funkce obdrží nesprávný argument EOFError: pokud je zasažen End-Of-File bez načtení jakýchkoli dat ImportError: pokud nemůže najít modul
Zkuste kromě v Pythonu
Příkaz Try and Except se používá ke zpracování těchto chyb v našem kódu v Pythonu. Blok try se používá ke kontrole chyb v nějakém kódu, tj. kód uvnitř bloku try se spustí, když v programu není žádná chyba. Zatímco kód uvnitř bloku výjimkou se spustí vždy, když program narazí na nějakou chybu v předchozím bloku try.
Syntax:
try: # Some Code except: # Executed if error in the # try block>
Jak funguje try()?
- Za prvé, Snaž se je provedena klauzule, tj. kód mezi Snaž se.
- Pokud neexistuje žádná výjimka, pak pouze Snaž se klauzule poběží, až na doložka je hotová.
- Pokud dojde k nějaké výjimce, Snaž se doložka bude přeskočena a až na doložka poběží.
- Pokud dojde k nějaké výjimce, ale až na klauzule v kódu to nezpracovává, je předána vnějšímu Snaž se prohlášení. Pokud výjimka zůstane neošetřená, provádění se zastaví.
- A Snaž se výpis může mít více než jeden až na doložka
Kód 1: Žádná výjimka, takže Snaž se doložka poběží.
Python3
# Python code to illustrate> # working of try()> def> divide(x, y):> >try>:> ># Floor Division : Gives only Fractional Part as Answer> >result>=> x>/>/> y> >print>(>'Yeah ! Your answer is :'>, result)> >except> ZeroDivisionError:> >print>(>'Sorry ! You are dividing by zero '>)> # Look at parameters and note the working of Program> divide(>3>,>2>)> |
>
výměna paměti
>
Pomocný prostor: O(1)
Výstup :
Yeah ! Your answer is : 1>
Kód 1: Existuje pouze výjimka až na doložka poběží.
Python3
zednický vzorec
# Python code to illustrate> # working of try()> def> divide(x, y):> >try>:> ># Floor Division : Gives only Fractional Part as Answer> >result>=> x>/>/> y> >print>(>'Yeah ! Your answer is :'>, result)> >except> ZeroDivisionError:> >print>(>'Sorry ! You are dividing by zero '>)> # Look at parameters and note the working of Program> divide(>3>,>0>)> |
>
>
Výstup :
Sorry ! You are dividing by zero>
Kód 2: Jiný způsob psaní až na příkaz, je zobrazen níže a tímto způsobem přijímá pouze výjimky, které máte zachytit, nebo můžete zkontrolovat, která chyba se vyskytuje.
Python3
# code> def> divide(x, y):> >try>:> ># Floor Division : Gives only Fractional Part as Answer> >result>=> x>/>/> y> >print>(>'Yeah ! Your answer is :'>, result)> >except> Exception as e:> ># By this way we can know about the type of error occurring> >print>(>'The error is: '>,e)> > divide(>3>,>'GFG'>)> divide(>3>,>0>)> |
>
>
Výstup:
The error is: unsupported operand type(s) for //: 'int' and 'str' The error is: integer division or modulo by zero>
Jinak klauzule
V Pythonu můžete také použít klauzuli else v bloku try-except, který musí být přítomen za všemi klauzulemi kromě. Kód vstoupí do bloku else pouze v případě, že klauzule try nevyvolá výjimku.
vymazání mezipaměti npm
Syntax:
try: # Some Code except: # Executed if error in the # try block else: # execute if no exception>
Kód:
Python3
# Program to depict else clause with try-except> > # Function which returns a/b> def> AbyB(a , b):> >try>:> >c>=> ((a>+>b)>/>/> (a>->b))> >except> ZeroDivisionError:> >print> (>'a/b result in 0'>)> >else>:> >print> (c)> > # Driver program to test above function> AbyB(>2.0>,>3.0>)> AbyB(>3.0>,>3.0>)> |
>
>
Výstup:
-5.0 a/b result in 0>
Konečně klíčové slovo v Pythonu
Python poskytuje klíčové slovo nakonec, které se vždy spustí po pokusu a kromě bloků. Poslední blok se vždy provede po normálním ukončení bloku try nebo po ukončení bloku try kvůli některým výjimkám.
Syntax:
try: # Some Code except: # Executed if error in the # try block else: # execute if no exception finally: # Some code .....(always executed)>
Kód:
Python3
zpracování řetězců v c++
# Python program to demonstrate finally> > # No exception Exception raised in try block> try>:> >k>=> 5>/>/>0> # raises divide by zero exception.> >print>(k)> > # handles zerodivision exception> except> ZeroDivisionError:> >print>(>'Can't divide by zero'>)> > finally>:> ># this block is always executed> ># regardless of exception generation.> >print>(>'This is always executed'>)> |
>
>
Výstup:
Can't divide by zero This is always executed>
Související články:
- Výstupní otázky
- Zpracování výjimek v Pythonu
- Uživatelsky definované výjimky