L'error a Python pot ser de dos tipus, és a dir, errors de sintaxi i excepcions. Els errors són els problemes d'un programa a causa dels quals el programa aturarà l'execució. D'altra banda, es plantegen excepcions quan es produeixen alguns esdeveniments interns que canvien el flux normal del programa.
Nota: Per obtenir més informació, consulteu Errors i excepcions a Python
Alguns dels errors d'excepció habituals són:
- IOError: si el fitxer no es pot obrir KeyboardInterrupt: quan l'usuari prem una tecla no requerida ValueError: quan la funció integrada rep un argument incorrecte EOFError: si s'accedeix a End-of-File sense llegir cap dada ImportError: si no pot trobar el mòdul
Proveu Excepte en Python
La instrucció Try and Except s'utilitza per gestionar aquests errors dins del nostre codi a Python. El bloc try s'utilitza per comprovar si hi ha errors en algun codi, és a dir, el codi dins del bloc try s'executarà quan no hi hagi cap error al programa. Mentre que el codi dins del bloc except s'executarà sempre que el programa trobi algun error al bloc try anterior.
Sintaxi:
try: # Some Code except: # Executed if error in the # try block>
Com funciona try()?
- En primer lloc, el provar s'executa la clàusula, és a dir, el codi entre provar.
- Si no hi ha cap excepció, només el provar la clàusula s'executarà, excepte la clàusula està acabada.
- 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
Codi 1: Cap excepció, així que el provar la clàusula s'executarà.
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> > 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> )> |
>
>
Espai auxiliar: O(1)
Sortida:
Yeah ! Your answer is : 1>
Codi 1: Hi ha una excepció tan sols excepte la clàusula s'executarà.
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> > 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> )> |
>
factorial al c
>
Sortida:
Sorry ! You are dividing by zero>
Codi 2: L'altra manera d'escriure excepte declaració, es mostra a continuació i, d'aquesta manera, només accepta excepcions que haureu de detectar o podeu comprovar quin error s'està produint.
Python 3
# 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> )> |
>
>
Sortida:
The error is: unsupported operand type(s) for //: 'int' and 'str' The error is: integer division or modulo by zero>
Clàusula altra
A Python, també podeu utilitzar la clàusula else al bloc try-except que ha d'estar present després de totes les clàusules excepte. El codi entra al bloc else només si la clàusula try no genera cap excepció.
Sintaxi:
try: # Some Code except: # Executed if error in the # try block else: # execute if no exception>
Codi:
Python 3
# 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> )> |
>
>
Sortida:
-5.0 a/b result in 0>
Finalment, paraula clau en Python
Python proporciona finalment una paraula clau, que sempre s'executa després dels blocs try and except. 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'algunes excepcions.
Sintaxi:
try: # Some Code except: # Executed if error in the # try block else: # execute if no exception finally: # Some code .....(always executed)>
Codi:
Python 3
# 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'> )> |
>
>
Sortida:
Can't divide by zero This is always executed>
Articles relacionats:
- Preguntes de sortida
- Gestió d'excepcions en Python
- Excepcions definides per l'usuari