Încercați, cu excepția, altfel și în sfârșit în Python
O excepție este un eveniment neașteptat, care are loc în timpul execuției programului. Este cunoscut și ca a eroare de rulare . Când apare această eroare, Piton generează o excepție în timpul execuției și care poate fi gestionată, ceea ce împiedică întreruperea programului dumneavoastră.
Exemplu: În acest cod, sistemul nu poate împărți numărul cu zero, așa că se ridică o excepție.
Python3
a> => 5> b> => 0> print> (a> /> b)> |
Ieșire
Traceback (most recent call last): File '/home/8a10be6ca075391a8b174e0987a3e7f5.py', line 3, in print(a/b) ZeroDivisionError: division by zero
Gestionarea excepțiilor cu try, except, else și în final
- Încerca : Acest bloc va testa eroarea exceptată să apară
- Cu exceptia : Aici puteți gestiona eroarea
- Altfel : Dacă nu există nicio excepție, atunci acest bloc va fi executat
- In cele din urma : În cele din urmă, blocul este întotdeauna executat, fie că este generată sau nu excepția
Python Try, Except, else și în final Sintaxă
try: # Some Code.... except: # optional block # Handling of exception (if required) else: # execute if no exception finally: # Some code .....(always executed)
Lucrarea lui ‘ încerca' și 'cu exceptia'
Să înțelegem mai întâi cum Python încearcă și cu excepția lucrări
- Primul încerca clauza este executată, adică codul dintre încerca și cu exceptia clauză.
- Dacă nu există excepție, atunci numai încerca clauza va rula, cu exceptia clauza nu va fi executată.
- Dacă apare vreo excepție, încerca clauza va fi omisă și cu exceptia clauza va rula.
- Dacă apare vreo excepție, dar cu exceptia clauza din cod nu o gestionează, este transmisă în exterior încerca declarații. Dacă excepția este lăsată netratată, atunci execuția se oprește.
- A încerca declarația poate avea mai multe cu exceptia clauză.
Exemplu: Să încercăm să luăm intrarea întregului utilizator și să aruncăm excepția în blocul except.
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> )> divide(> 3> ,> 0> )> |
Ieșire:
Yeah ! Your answer is : 1 Sorry ! You are dividing by zero
Prindeți mai multe excepții în Python
Iată un exemplu care demonstrează cum să folosiți mai multe clauze except pentru a gestiona diferite excepții:
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}'> )> |
Ieșire:
Enter a number: An error occurred: EOF when reading a line
Clauzele Else în Python
Codul intră în blocul else numai dacă clauza try nu ridică o excepție.
Exemplu: În caz contrar, blocul se va executa numai atunci când nu apare nicio excepție .
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> )> |
Ieșire:
Yeah ! Your answer is : 1 Sorry ! You are dividing by zero
Python în sfârșit cuvânt cheie
Python oferă un cuvânt cheie in cele din urma , care este întotdeauna executat după încercare și cu excepția blocurilor. Blocul final se execută întotdeauna după terminarea normală a blocului try sau după terminarea blocului try din cauza unor excepții. Chiar dacă reveniți în blocul except, blocul final se va executa
Exemplu: Să încercăm să aruncăm excepția în blocul except și în cele din urmă se va executa fie excepția va genera, fie nu
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> )> |
Ieșire:
Yeah ! Your answer is : 1 This is always executed Sorry ! You are dividing by zero This is always executed