Python Skús okrem
Chyba v Pythone môže byť dvoch typov, t. j. chyby syntaxe a výnimky. Chyby sú problémy v programe, kvôli ktorým program zastaví vykonávanie. Na druhej strane sa vyskytnú výnimky, keď nastanú nejaké interné udalosti, ktoré zmenia normálny tok programu.
Poznámka: Ďalšie informácie nájdete v časti Chyby a výnimky v Pythone
Niektoré z bežných chýb výnimiek sú:
- IOError: ak sa súbor nedá otvoriť KeyboardInterrupt: keď používateľ stlačí nevyžiadanú klávesu ValueError: keď vstavaná funkcia dostane nesprávny argument EOFError: ak sa zasiahne End-Of-File bez načítania akýchkoľvek údajov ImportError: ak nemôže nájsť modul
Skúste okrem v Pythone
Príkaz Try and Except sa používa na spracovanie týchto chýb v našom kóde v Pythone. Blok try sa používa na kontrolu chýb v nejakom kóde, t. j. kód v bloku try sa spustí, keď v programe nie je žiadna chyba. Zatiaľ čo kód v bloku okrem sa spustí vždy, keď program narazí na nejakú chybu v predchádzajúcom bloku try.
Syntax:
try: # Some Code except: # Executed if error in the # try block
Ako funguje try()?
- Po prvé, skúste vykoná sa klauzula, t.j. kód medzi skúste.
- Ak neexistuje žiadna výnimka, potom iba skúste doložka bude platiť, okrem doložka je dokončená.
- Ak sa vyskytne nejaká výnimka, skúste doložka sa preskočí a okrem doložka bude plynúť.
- Ak sa vyskytne nejaká výnimka, ale okrem klauzula v kóde sa tým nezaoberá, prenáša sa na vonkajšie skúste Vyhlásenia. Ak výnimka zostane neošetrená, vykonávanie sa zastaví.
- A skúste výpis môže mať viac ako jeden okrem doložka
Kód 1: Žiadna výnimka, takže skúste doložka bude plynúť.
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> )> |
Pomocný priestor: O(1)
Výkon :
Yeah ! Your answer is : 1
Kód 1: Existuje iba výnimka okrem doložka bude plynúť.
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> ,> 0> )> |
Výkon :
Sorry ! You are dividing by zero
Kód 2: Iný spôsob písania okrem vyhlásenie, je zobrazené nižšie a týmto spôsobom akceptuje iba výnimky, ktoré máte zachytiť, alebo môžete skontrolovať, ktorá chyba sa 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ýkon:
The error is: unsupported operand type(s) for //: 'int' and 'str' The error is: integer division or modulo by zero
Inak doložka
V Pythone môžete použiť aj klauzulu else v bloku try-except, ktorý musí byť prítomný po všetkých klauzulách okrem. Kód vstupuje do bloku else iba vtedy, ak klauzula try nevyvoláva výnimku.
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ýkon:
-5.0 a/b result in 0
Nakoniec kľúčové slovo v Pythone
Python nakoniec poskytuje kľúčové slovo, ktoré sa vždy vykoná po pokuse a okrem blokov. Posledný blok sa vždy vykoná po normálnom ukončení bloku try alebo po ukončení bloku try kvôli niektorým výnimká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
# 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ýkon:
Can't divide by zero This is always executed
Súvisiace články:
- Výstupné otázky
- Spracovanie výnimiek v Pythone
- Používateľom definované výnimky