Clases de excepciones personalizadas
Defina sus propios tipos de excepción para comunicar los errores con mayor claridad.
Clases de excepciones personalizadas es una lección gratuita de Python Academy en CoddyKit. Esta es la lección 4 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Python Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Python Academy incluye 4 lecciones en total.
Introducción
¿Por qué utilizar excepciones personalizadas?
class AppError(Exception):
pass
raise AppError('something went wrong')Heredar de Exception
class ValidationError(Exception):
pass
try:
raise ValidationError('email is invalid')
except ValidationError as e:
print(e)Añadir atributos personalizados
class APIError(Exception):
def __init__(self, status, message):
self.status = status
super().__init__(message)
try:
raise APIError(404, 'Not found')
except APIError as e:
print(e.status, e)Jerarquía de excepciones
class AppError(Exception): pass
class DBError(AppError): pass
class NetworkError(AppError): pass
try:
raise DBError('timeout')
except AppError as e:
print('app error:', e)Método __str__ personalizado
class RangeError(ValueError):
def __init__(self, val, lo, hi):
self.val, self.lo, self.hi = val, lo, hi
def __str__(self):
return f'{self.val} not in [{self.lo}, {self.hi}]'
print(RangeError(15, 0, 10))Lanzar excepciones personalizadas
class InsufficientFundsError(Exception):
def __init__(self, needed, available):
super().__init__(f'Need {needed}, have {available}')
def withdraw(balance, amount):
if amount > balance:
raise InsufficientFundsError(amount, balance)
return balance - amount
try:
withdraw(100, 200)
except InsufficientFundsError as e:
print(e)Capturar mediante la clase base
class AppError(Exception): pass
class DBError(AppError): pass
try:
raise DBError('conn failed')
except AppError:
print('any app error')Excepción con un gestor de contexto
class SuppressValue(Exception): pass
try:
raise SuppressValue('ignored')
except SuppressValue:
pass # suppress silently
print('continued')Documentar excepciones personalizadas
class ConfigError(Exception):
"""Raised when configuration is invalid.
Attributes:
key: The invalid config key
"""
def __init__(self, key, msg):
super().__init__(msg)
self.key = keyPrácticas recomendadas
# Good structure:
class AppError(Exception): pass
class ValidationError(AppError): pass
class NotFoundError(AppError): pass
print('hierarchy demo')Comprobación rápida
Resumen
Siga avanzando
Preguntas frecuentes
¿La lección «Clases de excepciones personalizadas» es gratis?
Sí — el texto completo de «Clases de excepciones personalizadas» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Python Academy, actualiza a CoddyKit PRO. El curso de Python Academy incluye 4 lecciones en total.
¿Qué aprenderé en «Clases de excepciones personalizadas»?
Defina sus propios tipos de excepción para comunicar los errores con mayor claridad. Practicas Python Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar Python Academy?
No se requiere experiencia previa. Python Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 4 de 4.
¿Cuánto tiempo toma la lección «Clases de excepciones personalizadas»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de Python Academy?
Sí. Cada lección de Python Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Comprensión de las excepciones
- try / except / else / finally
- Lanzamiento y relanzamiento de excepciones
- Clases de excepciones personalizadas