Pruebe, excepto, más y finalmente en Python

Una Excepción es un Evento, que ocurre durante la ejecución del programa. También se conoce como error de tiempo de ejecución . Cuando ocurre ese error, Python genera una excepción durante la ejecución y eso se puede manejar, lo que evita que su programa se interrumpa.

Ejemplo:

Python3

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

Producción:

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

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

Manejo de excepciones con try, except, else y finalmente

  • Intente : este bloque probará que ocurra el error exceptuado
  • Excepto : aquí puede manejar el error
  • De lo contrario : si no hay excepción, este bloque se ejecutará
  • Finalmente : el bloque finalmente siempre se ejecuta, ya sea que se genere una excepción o no.

Sintaxis:

try:
       # Some Code.... 

except:
       # optional block
       # Handling of exception (if required)

else:
       # execute if no exception

finally:
      # Some code .....(always executed)

Primero entendamos cómo funciona probar y excepto:

  • Se ejecuta la primera cláusula de prueba , es decir, el código entre la cláusula de prueba y excepción .
  • Si no hay una excepción, solo se ejecutará la cláusula de prueba , la cláusula de excepción no se ejecutará.
  • Si se produce alguna excepción, se omitirá la cláusula de prueba y se ejecutará la cláusula de excepción .
  • Si ocurre alguna excepción, pero la cláusula de excepción dentro del código no la maneja, se pasa a las declaraciones de prueba externas . Si la excepción no se controla, la ejecución se detiene.
  • Una declaración de prueba puede tener más de una cláusula excepto .

Ejemplo: Intentemos tomar la entrada de un número entero del usuario y lanzar la excepción en el bloque de 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
        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 

Cláusula de lo contrario

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

Ejemplo: el bloque Else se ejecutará solo cuando no ocurra 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 

Finalmente palabra clave

Python proporciona una palabra clave finalmente , que siempre se ejecuta después de los bloques try y except. El bloque finalmente siempre se ejecuta después de la finalización normal del bloque de prueba o después de que finaliza el bloque de prueba 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 cualquiera de las excepciones 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

Publicación traducida automáticamente

Artículo escrito por kumar_satyam y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *