3.1 Try, Except y Finally

En Python, el manejo de excepciones se realiza mediante los bloques try y except. Estos bloques permiten gestionar situaciones excepcionales o errores que pueden ocurrir durante la ejecución de un programa. La idea principal es intentar ejecutar un bloque de código dentro de try y, si ocurre una excepción, manejarla de manera controlada en el bloque except.

Estructura básica del manejo de excepciones

try:
    # Bloque de código que puede generar una excepción
    resultado = 10 / 0  # Genera una excepción de división por cero
except Exception as error:
    # Bloque de código que se ejecuta si se produce una excepción
    print(f"Se produjo un error: {error}")

En este ejemplo, el código dentro del bloque try intenta realizar una operación de división por cero, lo cual generará una excepción. El bloque except se encargará de manejar la excepción, imprimir un mensaje y continuar con la ejecución del programa.

Tipos de excepciones

Puedes capturar excepciones específicas dependiendo del tipo de error que estés esperando. Por ejemplo, si estás trabajando con archivos, puedes capturar excepciones relacionadas con la manipulación de archivos.

try:
    # Bloque de código que puede generar una excepción
    with open("archivo_inexistente.txt", "r") as archivo:
        contenido = archivo.read()
except FileNotFoundError:
    # Bloque de código específico para manejar el error de archivo no encontrado
    print("El archivo no se encontró.")
except Exception as error:
    # Bloque de código para manejar otras excepciones
    print(f"Se produjo un error: {error}")

Bloque else y finally

Además de try y except, puedes utilizar los bloques else y finally. El bloque else se ejecuta si no se produce ninguna excepción en el bloque try, y el bloque finally se ejecuta siempre, independientemente de si se produjo una excepción o no.

try:
    # Bloque de código que puede generar una excepción
    resultado = 10 / 2
except ZeroDivisionError:
    # Bloque de código para manejar el error de división por cero
    print("¡Error! División por cero.")
else:
    # Bloque de código que se ejecuta si no se produce una excepción
    print("El resultado es:", resultado)
finally:
    # Bloque de código que se ejecuta siempre
    print("Fin del bloque try-except.")

Estos bloques adicionales proporcionan flexibilidad en el manejo de excepciones y permiten realizar acciones específicas según el flujo de ejecución del programa. Es importante señalar que es una buena práctica capturar únicamente las excepciones que se esperan y no capturar todas las excepciones indiscriminadamente, a menos que sea estrictamente necesario. Esto ayuda a identificar y solucionar problemas de manera más eficiente.

Next