Manejar errores

Los errores van a pasar sí o sí. La diferencia entre un script y un programa serio es qué ocurre cuando pasan.

Cuando Python encuentra un error, se detiene en seco. Todo lo que venía después no se ejecuta.

Mira: la última línea nunca aparece.

Imagina que eso pasa mientras alguien está usando tu programa: se cierra sin explicación y pierde lo que estaba haciendo.

Se lee tal cual: "intenta esto; si falla, haz esto otro".

Lo que va dentro de try se ejecuta normalmente. Si algo revienta, en vez de morirse, salta al except.

Un except pelado atrapa cualquier error, incluso los que no esperabas — y eso esconde bugs. Es mejor decir cuál te interesa.

Recuerda los nombres que viste en el primer tutorial: ValueError, TypeError, KeyError, ZeroDivisionError.

Dos piezas que completan la estructura:

  • else — se ejecuta solo si no hubo error.
  • finally — se ejecuta siempre, haya fallado o no. Sirve para cerrar cosas: un archivo, una conexión.

En la práctica, casi siempre lo vas a usar para lo mismo: validar lo que escribe una persona, que es de donde vienen la mayoría de los errores.

Este patrón —pedir hasta que sea válido— es el que verás en todos lados:

try, except, atrapar errores específicos, ver su mensaje, y else/finally.

Ahora una de las cosas por las que la gente se enamora de Python.