CodeForge

Python de Cero a Experto / Python intermedio

Excepciones personalizadas

Teoría20 min20 XP

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.