Resumen

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.