python-try-except

Captuar excepciones con Try-Except en Python

  • 4 min

En Python, cuando se produce un error, se genera una excepción. Las excepciones son objetos que simboliza el error y contiene información sobre el mismo.

Las excepciones son eventos que ocurren durante la ejecución de un programa y que alteran el flujo normal de instrucciones.

Esta excepción puede,

  • Ser capturada por un bloque try
  • Si no, pasa a la función que invocó a la que genero el error.

Así la excepción va “subiendo”. Si nadie la gestiona, la excepción llegará a la función principal y lo normal es que el programa termine abruptamente.

El bloque Try-Except

Las excepciones en Python se gestionan con un bloque Try-Except, que tiene la siguiente sintaxis básica,

try:
    # Código que puede lanzar una excepción
    
except:
    # Código a ejecutar si se produce una excepción   

El bloque try se utiliza para encapsular el código que puede generar una excepción. Dentro de este bloque se coloca el código que se desea ejecutar y que podría lanzar una excepción.

Si no se produce ninguna excepción, el flujo del programa continúa normalmente. Si se produce una excepción, el flujo del programa se desvía al bloque except.

El bloque except se utiliza para capturar y manejar las excepciones que se producen dentro del bloque try. Dentro de este bloque se coloca el código que se desea ejecutar en caso de que se produzca una excepción.

try:
    # Código que puede lanzar una excepción
    resultado = 10 / 0
except:
    # Código a ejecutar si se produce una excepción
    print("Se produjo una excepción.")

En este caso,

  • Dentro del bloque try tenemos la operación 10/0, que va a dar un error (porque no se puede dividir por cero). Así que saltará una excepción.
  • El bloque except capturará la excepción, y mostrará en pantalla el texto “Se produjo una excepnción.”

Bloque else

El bloque else se utiliza para ejecutar código si no se produce ninguna excepción en el bloque try.

try:
    # Código que puede lanzar una excepción
    resultado = 10 / 2
except ZeroDivisionError:
    # Código a ejecutar si se produce una excepción del tipo ZeroDivisionError
    print("No se puede dividir por cero.")
else:
    # Código a ejecutar si no se produce ninguna excepción
    print("La división fue exitosa. El resultado es:", resultado)
finally:
    # Código a ejecutar siempre, independientemente de si se produce una excepción o no
    print("Esta línea se ejecutará siempre.")

Bloque finally

El bloque finally se utiliza para ejecutar código independientemente de si se produce una excepción o no.

try:
    # Código que puede lanzar una excepción
    resultado = 10 / 0
except ZeroDivisionError:
    # Código a ejecutar si se produce una excepción del tipo ZeroDivisionError
    print("No se puede dividir por cero.")
finally:
    # Código a ejecutar siempre, independientemente de si se produce una excepción o no
    print("Esta línea se ejecutará siempre.")

Dentro de este bloque se coloca el código que se desea ejecutar siempre, por ejemplo, para liberar recursos o realizar alguna limpieza.