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