CodeForge

Python de Cero a Experto / Python intermedio

Excepciones: manejar errores

Teoría22 min20 XP

Los errores son inevitables: un usuario escribe texto donde esperabas un número, un archivo no existe, una división entre cero. Sin manejo, un error DETIENE tu programa de golpe. Las EXCEPCIONES te dan control: INTENTAS algo, y si falla, CAPTURAS el error y decides qué hacer —en vez de que todo se caiga—. Es la red de seguridad de tus programas. Hoy dominas try/except y cómo lanzar tus propios errores con raise.

La red del trapecista

try / except

El bloque try contiene el código que PODRÍA fallar. Si ocurre un error, Python salta al except correspondiente en vez de detenerse. except ValueError: captura ese tipo específico de error; except ZeroDivisionError as e: además guarda el error en e para ver su mensaje. Lo clave: tras manejar el error, el programa CONTINÚA —no se cae—. Capturas el tipo de error que ESPERAS (no todos a ciegas), para manejar cada caso apropiadamente.

else, finally y tipos específicos

Lanzar errores con raise

¿Qué hacen try/except y en qué se diferencian else y finally?

Mini-reto

Haz una función robusta para Mi Bolsillo: 1) parsear_valor(texto) que use try/except para convertir un texto a número entero con int(), devolviendo None (y un mensaje) si no es válido; 2) dividir(a, b) que capture ZeroDivisionError y devuelva 0 si b es cero; 3) una función validar_gasto(valor) que use raise ValueError si el valor es negativo o cero. Prueba cada una con entradas válidas e inválidas y confirma que el programa nunca se cae.

Qué sigue

Ya capturas y lanzas errores. La próxima lección lleva esto más lejos con las EXCEPCIONES PERSONALIZADAS —crear tus propios tipos de error con nombres significativos (SaldoInsuficienteError)—, para que tu manejo de errores sea claro y específico del dominio de tu programa.