Pruebe, excepto, lo demás y finalmente en Python

Una excepción es un evento inesperado que ocurre durante la ejecución del programa. También se le conoce como Error de tiempo de ejecución . Cuando ese error ocurre, Pitón genera una excepción durante la ejecución y que puede ser manejada, lo que evita que su programa se interrumpa.

Ejemplo: En este código, el sistema no puede dividir el número por cero, por lo que se genera una excepción.

Python3




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

Producción

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

Manejo de excepciones con try, excepto, else y finalmente

  • Intentar : Este bloque probará que ocurra el error exceptuado.
  • Excepto : Aquí puedes manejar el error.
  • Demás : Si no hay excepción entonces este bloque se ejecutará
  • Finalmente : Finalmente el bloque siempre se ejecuta, ya sea que se genere una excepción o no

Python prueba, excepto, de lo contrario y finalmente sintaxis

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

Trabajo de ' intentar' y 'excepto'

Primero entendamos cómo Python intenta y excepto obras

  • Primero intentar se ejecuta la cláusula, es decir, el código entre intentar y excepto cláusula.
  • Si no hay excepción, entonces sólo intentar la cláusula se ejecutará, excepto La cláusula no se ejecutará.
  • Si ocurre alguna excepción, el intentar se omitirá la cláusula y excepto se ejecutará la cláusula.
  • Si ocurre alguna excepción, pero el excepto La cláusula dentro del código no lo maneja, se pasa al exterior. intentar declaraciones. Si la excepción no se controla, la ejecución se detiene.
  • A intentar La declaración puede tener más de una. excepto cláusula.

Ejemplo: Intentemos tomar la entrada de un número entero del usuario y lanzar la excepción en el bloque excepto.

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> )>

Producción:

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

Capture múltiples excepciones en Python

Aquí hay un ejemplo que demuestra cómo usar múltiples cláusulas except para manejar diferentes excepciones:

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}'> )>

Producción:

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

Cláusulas más en Python

El código ingresa al bloque else solo si la cláusula try no genera una excepción.

Ejemplo: De lo contrario, el bloque se ejecutará sólo cuando no ocurre ninguna excepción .

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> )>

Producción:

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

Python finalmente palabra clave

Python proporciona una palabra clave finalmente , cual es siempre ejecutado después de intentar y excepto bloques. El bloque finalmente siempre se ejecuta después de la terminación normal del bloque try o después de que finaliza el bloque try debido a alguna excepción. Incluso si regresa en el bloque excepto, el bloque finalmente se ejecutará

Ejemplo: Intentemos lanzar la excepción en el bloque excepto y finalmente ejecutaremos la excepción que se generará o no.

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> )>

Producción:

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