logo

Skúste, okrem, inak a nakoniec v Pythone

Výnimka je neočakávaná udalosť, ktorá nastane počas vykonávania programu. Je tiež známy ako a chyba času chodu . Keď nastane tá chyba, Python vygeneruje počas vykonávania výnimku a dá sa s ňou zaobchádzať, čo zabráni prerušeniu vášho programu.

Príklad: V tomto kóde systém nemôže rozdeliť číslo nulou, takže je vyvolaná výnimka.



Python3








a>=> 5> b>=> 0> print>(a>/>b)>

>

>

Výkon

Traceback (most recent call last): File '/home/8a10be6ca075391a8b174e0987a3e7f5.py', line 3, in print(a/b) ZeroDivisionError: division by zero>

Ošetrenie výnimiek pomocou try, okrem iného a nakoniec

  • Skúste : Tento blok otestuje výskyt vylúčenej chyby
  • Okrem : Tu môžete vyriešiť chybu
  • Inak : Ak neexistuje žiadna výnimka, tento blok sa vykoná
  • Konečne : Nakoniec sa blok vždy vykoná, buď sa vygeneruje výnimka alebo nie

Python Try, Except, else a Nakoniec syntax

try: # Some Code.... except: # optional block # Handling of exception (if required) else: # execute if no exception finally: # Some code .....(always executed)>

Práca s ' skús' a 'okrem'

Najprv pochopme, ako Skúste Python a okrem Tvorba

  • najprv skúste vykoná sa klauzula, t.j. kód medzi skúste a okrem doložka.
  • Ak nie je výnimka, tak jedine skúste doložka bude platiť, okrem doložka nebude vykonaná.
  • 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.

Príklad: Skúsme zobrať celé číslo používateľa a vhodiť výnimku do bloku okrem.

Python3




armstrongovo číslo
# 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>)> divide(>3>,>0>)>

>

>

Výkon:

Yeah ! Your answer is : 1 Sorry ! You are dividing by zero>

Zachytenie viacerých výnimiek v Pythone

Tu je príklad, ktorý ukazuje, ako používať viaceré klauzuly okrem na spracovanie rôznych výnimiek:

Python3




try>:> >x>=> int>(>input>(>'Enter a number: '>))> >result>=> 10> /> x> except> ZeroDivisionError:> >print>(>'You cannot divide by zero.'>)> except> ValueError:> >print>(>'Invalid input. Please enter a valid number.'>)> except> Exception as e:> >print>(f>'An error occurred: {e}'>)>

>

>

Výkon:

Enter a number: An error occurred: EOF when reading a line>

Ostatné klauzuly v Pythone

Kód vstupuje do bloku else iba vtedy, ak klauzula try nevyvoláva výnimku.

Príklad: Iný blok sa vykoná iba ak nenastane žiadna výnimka .

Python3




# Python code to illustrate working of try()> def> divide(x, y):> >try>:> ># Floor Division : Gives only Fractional> ># Part as Answer> >result>=> x>/>/> y> >except> ZeroDivisionError:> >print>(>'Sorry ! You are dividing by zero '>)> >else>:> >print>(>'Yeah ! Your answer is :'>, result)> > # Look at parameters and note the working of Program> divide(>3>,>2>)> divide(>3>,>0>)>

>

>

Výkon:

Yeah ! Your answer is : 1 Sorry ! You are dividing by zero>

Python konečne kľúčové slovo

Python poskytuje kľúčové slovo konečne , ktorý je vždy vykonaný po vyskúšaní a okrem blokov. Blok final sa vždy vykoná po normálnom ukončení bloku try alebo po ukončení bloku try kvôli nejakej výnimke. Aj keď sa vrátite do bloku okrem, blok nakoniec sa vykoná

Príklad: Skúsme vložiť výnimku okrem bloku a nakoniec vykonáme, či sa výnimka vygeneruje alebo nie

Python3




# Python code to illustrate> # working of try()> def> divide(x, y):> >try>:> ># Floor Division : Gives only Fractional> ># Part as Answer> >result>=> x>/>/> y> >except> ZeroDivisionError:> >print>(>'Sorry ! You are dividing by zero '>)> >else>:> >print>(>'Yeah ! Your answer is :'>, result)> >finally>:> ># this block is always executed> ># regardless of exception generation.> >print>(>'This is always executed'>)> # Look at parameters and note the working of Program> divide(>3>,>2>)> divide(>3>,>0>)>

>

>

Výkon:

Yeah ! Your answer is : 1 This is always executed Sorry ! You are dividing by zero This is always executed>