Las excepciones en Python son una forma de manejar errores en tiempo de ejecución. Permiten que el programa continúe su ejecución de manera controlada cuando ocurre un error. A continuación, se muestra cómo manejar diferentes tipos de excepciones y cómo utilizar los bloques try, except, else y finally.
Validación básica de tipos
numero_uno = 10
numero_dos = "5"
if isinstance(numero_uno, int) and isinstance(numero_dos, int):
print(numero_uno + numero_dos)
else:
print("No se pueden sumar porque uno o ambos no son enteros")
Utilizamos isinstance para verificar si numero_uno y numero_dos son de tipo entero antes de intentar sumarlos.
Manejo de excepciones básicas
try:
resultado = numero_uno + numero_dos
print(resultado)
print("No se ha producido un error")
except:
print("Se ha producido un error")
El bloque try intenta ejecutar el código. Si ocurre una excepción, el bloque except se ejecuta.
Uso de else y finally
try:
resultado = numero_uno + numero_dos
print(resultado)
print("No se ha producido un error")
except:
print("Se ha producido un error")
else:
print("La ejecución continúa correctamente")
finally:
print("Esta sección se ejecuta siempre")
El bloque else se ejecuta si no ocurre ninguna excepción.
El bloque finally se ejecuta siempre, ocurra o no una excepción.
Manejo de excepciones específicas
try:
resultado = numero_uno + numero_dos
print(resultado)
print("No se produce error")
except TypeError:
print("Se ha producido un error de tipo")
El bloque except TypeError captura específicamente errores de tipo, permitiendo un manejo más preciso.
Múltiples excepciones
try:
resultado = numero_uno + numero_dos
print(resultado)
print("No se ha producido error")
except TypeError:
print("Se ha producido un error de tipo")
except ValueError:
print("Se ha producido un error de valor")
Se pueden manejar múltiples excepciones específicas utilizando múltiples bloques except.
Captura de la información de la excepción
try:
resultado = numero_uno + numero_dos
print(resultado)
print("No se ha producido error")
except ValueError as error:
print(f"Error de valor: {error}")
except TypeError as error:
print(f"Error de tipo: {error}")
except Exception as error:
print(f"Error general: {error}")
Al capturar una excepción, se puede acceder a su información utilizando la sintaxis as error. Esto permite imprimir detalles sobre la excepción.
Ejemplo adicional
# Ejemplo con suma
numero_tres = 8
numero_cuatro = "dos"
try:
resultado = numero_tres + numero_cuatro
print(resultado)
print("No se ha producido error")
except TypeError as error:
print(f"Se ha producido un error de tipo: {error}")
except Exception as error:
print(f"Se ha producido un error: {error}")
else:
print("La suma se ha realizado correctamente")
finally:
print("Bloque finally ejecutado")
# Otro ejemplo con división
numero_cinco = 10
numero_seis = 0
try:
resultado_division = numero_cinco / numero_seis
print(resultado_division)
except ZeroDivisionError as error:
print(f"Error de división por cero: {error}")
finally:
print("Intento de división finalizado")
El primer ejemplo muestra cómo capturar y manejar errores específicos de tipo, y el segundo ejemplo maneja un error de división por cero. El bloque finally asegura que cierto código se ejecuta siempre, independientemente de si ocurrió una excepción.
Conclusión
Manejar excepciones en Python es crucial para crear aplicaciones robustas y a prueba de fallos. Utilizar bloques try, except, else y finally permite controlar el flujo del programa y manejar errores de manera elegante, asegurando que el programa no se detenga abruptamente y ofreciendo retroalimentación útil al usuario o desarrollador.