Una excepció és un esdeveniment inesperat que es produeix durant l'execució del programa. També es coneix com a error d'execució . Quan es produeix aquest error, Python genera una excepció durant l'execució i que es pot gestionar, la qual cosa evita que el vostre programa s'interrompi.
Exemple: En aquest codi, el sistema no pot dividir el nombre amb zero, de manera que es planteja una excepció.
Python 3
a> => 5> b> => 0> print> (a> /> b)> |
>
>
Sortida
Traceback (most recent call last): File '/home/8a10be6ca075391a8b174e0987a3e7f5.py', line 3, in print(a/b) ZeroDivisionError: division by zero>
Gestió d'excepcions amb try, excepte, else i finalment
- Prova : Aquest bloc provarà que es produeixi l'error excepte
- Excepte : Aquí podeu gestionar l'error
- Altrament : Si no hi ha cap excepció, aquest bloc s'executarà
- Finalment : Finalment, el bloc sempre s'executa, ja sigui que es genera una excepció o no
Python Try, Except, else i finalment Sintaxi
try: # Some Code.... except: # optional block # Handling of exception (if required) else: # execute if no exception finally: # Some code .....(always executed)>
Treball de ' prova' i 'excepte'
Primer entenem com és Python prova i excepte obres
- Primer provar s'executa la clàusula, és a dir, el codi entre provar i excepte clàusula.
- Si no hi ha cap excepció, només provar la clàusula s'executarà, excepte la clàusula no s'executarà.
- Si es produeix alguna excepció, el provar es saltarà la clàusula i excepte la clàusula s'executarà.
- Si es produeix alguna excepció, però el excepte la clàusula del codi no la gestiona, es passa a l'exterior provar declaracions. Si l'excepció no es gestiona, l'execució s'atura.
- A provar La declaració pot tenir més d'una excepte clàusula.
Exemple: Intentem prendre l'entrada de nombre enter de l'usuari i llançar l'excepció al bloc excepte.
Python 3
tutorial javafx
# 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> )> |
>
>
Sortida:
Yeah ! Your answer is : 1 Sorry ! You are dividing by zero>
Captura múltiples excepcions a Python
Aquí hi ha un exemple que demostra com utilitzar diverses clàusules excepte per gestionar diferents excepcions:
Python 3
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}'> )> |
>
>
Sortida:
Enter a number: An error occurred: EOF when reading a line>
Clàusules Else en Python
El codi entra al bloc else només si la clàusula try no genera cap excepció.
Exemple: En cas contrari, el bloc s'executarà només quan no es produeix cap excepció .
Python 3
# 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> )> |
>
>
Sortida:
Yeah ! Your answer is : 1 Sorry ! You are dividing by zero>
Python finalment paraula clau
Python proporciona una paraula clau finalment , el qual és sempre executat després d'intentar i excepte blocs. El bloc final sempre s'executa després de la finalització normal del bloc try o després que el bloc try finalitzi a causa d'alguna excepció. Encara que torneu al bloc excepte, el bloc finally s'executarà
Exemple: Intentem llançar l'excepció al bloc excepte i, finalment, executarem l'excepció que es generarà o no
Python 3
# 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> )> |
>
>
Sortida:
Yeah ! Your answer is : 1 This is always executed Sorry ! You are dividing by zero This is always executed>