Python de Cero a Experto / Python intermedio
Excepciones personalizadas
Los errores incorporados (ValueError, KeyError) son genéricos. Pero tu programa tiene reglas propias:
"saldo insuficiente", "categoría inválida", "gasto duplicado". Crear EXCEPCIONES PERSONALIZADAS —tus
propios tipos de error con nombres del dominio— hace tu código más claro y tu manejo de errores más
preciso: capturas exactamente el problema que te interesa. Hoy aprendes a definir y usar tus propias
excepciones.
Etiquetas de color para cada problema
Crear una excepción propia
Una excepción personalizada es una clase que HEREDA de Exception (usa la POO del módulo 4):
class SaldoInsuficienteError(Exception): define un nuevo tipo de error heredando de Exception —con
pass basta, no necesita más—. Lo LANZAS con raise SaldoInsuficienteError("mensaje") cuando se viola tu
regla, y lo CAPTURAS por su nombre específico (except SaldoInsuficienteError). La ventaja: quien usa tu
código puede capturar ESE error concreto y responder apropiadamente, distinguiéndolo de otros. El nombre
mismo documenta qué salió mal.
Errores con datos y jerarquías
¿Cómo se crea una excepción personalizada y qué ventaja tiene una jerarquía de errores?
Mini-reto
Crea una jerarquía de errores para Mi Bolsillo: 1) un error base BolsilloError(Exception); 2) dos
específicos que hereden de él: ValorInvalidoError y PresupuestoExcedidoError; 3) una función
gastar(monto, presupuesto) que lance ValorInvalidoError si el monto es negativo y
PresupuestoExcedidoError si supera el presupuesto; 4) prueba capturando un error específico, y luego toda
la familia con except BolsilloError. Imprime type(e).__name__ en el manejo.
Qué sigue
Ya manejas errores como un profesional. La próxima lección trae los CONTEXT MANAGERS (la sentencia with):
la forma elegante de garantizar que un recurso (un archivo, una conexión) se cierre siempre —incluso si
ocurre un error—. Es la pareja perfecta del finally, y la usarás para trabajar con archivos.