Aprende a manejar errores en Python con confianza: captura excepciones con try, responde con except y garantiza acciones finales con finally. Con ejemplos claros como ZeroDivisionError y NameError, verás cómo evitar caídas y comunicar la intención del código con mensajes útiles.
¿Qué es try y except en Python?
Python ofrece una estructura simple para el manejo de errores. El bloque try intenta ejecutar código y el bloque except captura la excepción si ocurre un problema. Usarlo de forma consciente mejora la legibilidad y la estabilidad del programa.
- Sintaxis clara y legible.
- Indentación obligatoria para cada bloque.
- Mensajes en la terminal que facilitan el diagnóstico.
- Especificar la excepción comunica intención al lector del código.
Ejemplo básico:
try: print("Intentamos algo") except: print("Captura error")
¿Cómo capturar errores comunes: ZeroDivisionError y NameError?
Identificar el tipo de error y declararlo en except es una buena práctica. Especificar la clase de excepción evita ocultar problemas no previstos y guía a quien lea el código.
¿Cómo manejar ZeroDivisionError?
Cuando se divide por cero, Python lanza ZeroDivisionError. Es recomendable capturarlo de forma explícita.
# Sin manejo: resultado = 10 / 0 # Provoca ZeroDivisionError
# Con manejo específico: try: resultado = 10 / 0 print(resultado) except ZeroDivisionError: print("No se puede dividir por cero.")
- Mensaje claro: “no se puede dividir por cero”.
- El editor puede sugerir especificar el tipo de excepción.
- Mejora el flujo del programa al evitar fallos abruptos.
¿Cómo manejar NameError?
Acceder a una variable no definida dispara NameError. Capturarlo permite informar qué ocurrió sin detener el programa.
# Sin manejo: print(x) # Provoca NameError
# Con manejo específico: try: print(x) except NameError: print("Esta variable no ha sido definida.")
- Útil cuando el flujo del programa puede no definir una variable.
- Facilita depurar y comunicar el fallo.
- Mantiene la ejecución bajo control.
¿Para qué sirve finally en el manejo de errores?
El bloque finally se ejecuta siempre, ocurra o no una excepción. Es ideal para acciones finales: por ejemplo, mostrar un aviso o ejecutar pasos que no deben omitirse.
# Con error presente: try: print(x) # x no definida except NameError: print("Esta variable no ha sido definida.") finally: print("Esto se ejecuta siempre.")
# Sin error: x = 1 try: print(x) except NameError: print("Esta variable no ha sido definida.") finally: print("Esto se ejecuta siempre.")
- Garantiza la ejecución de pasos finales.
- Funciona tanto si el try fue exitoso como si hubo error.
- Mantiene consistente el comportamiento del programa.
¿Te encontraste con otros errores durante tu aprendizaje? Comparte en los comentarios qué excepciones te aparecieron y cómo las capturarías con try y except.