0Pricing
Flask Academy · Lección

Lance clases de excepciones personalizadas

Defina errores de dominio que se conviertan en JSON.

Lance clases de excepciones personalizadas es una lección gratuita de Flask Academy en CoddyKit. Esta es la lección 3 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 Flask Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Flask Academy incluye 4 lecciones en total.

Partes de esta lección aún no han sido traducidas y se muestran en inglés.

Errors That Speak Your Domain

Numbers like 400 are generic. A custom exception names the real problem, such as a payment that failed or a quota hit.

Subclass an Exception

You start by defining a class that inherits from Exception. This gives you a clear, raisable error of your own.

class PaymentError(Exception):
    pass

Add a Status Code

Give the class a status_code attribute so a handler knows which HTTP code to send when it fires.

class PaymentError(Exception):
    status_code = 402

Carry a Message

Store a human message in the constructor. Your handler can later read it and place it into the response body.

def __init__(self, message):
    self.message = message

Raise It in a View

Inside a view you simply raise the error when something goes wrong. Flask then looks for a matching handler.

if not paid:
    raise PaymentError("Card declined")

Handle the Custom Class

Register an errorhandler for your class. It receives the instance, so you can read both its message and status code.

@app.errorhandler(PaymentError)
def on_pay(e):
    return e.message, e.status_code

Return JSON From It

For an API, turn the error into JSON inside the handler. Clients get a structured failure they can parse reliably.

return jsonify(error=e.message), e.status_code

One Base for Many Errors

Make a single base class and let specific errors subclass it. Then one handler can cover your whole error family.

class ApiError(Exception):
    pass

Default Sensible Values

Give the base a default status_code like 400. Subclasses override it only when they need a different one.

class ApiError(Exception):
    status_code = 400

Keep Logic Out of Views

Raising domain errors lets views stay short. The handler owns formatting, so each view just signals what went wrong.

Why This Scales

As an app grows, custom exceptions keep error logic in one tidy spot. New error types plug into the same clean pipeline.

Quick Check

How does a view trigger your domain error?

Recap

You built custom exception classes with a status code and message, raised them in views, and mapped them to clean JSON. Awesome!

Preguntas frecuentes

¿La lección «Lance clases de excepciones personalizadas» es gratis?

Sí — el texto completo de «Lance 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 Flask Academy, actualiza a CoddyKit PRO. El curso de Flask Academy incluye 4 lecciones en total.

¿Qué aprenderé en «Lance clases de excepciones personalizadas»?

Defina errores de dominio que se conviertan en JSON. Practicas Flask 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 Flask Academy?

No se requiere experiencia previa. Flask 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 3 de 4.

¿Cuánto tiempo toma la lección «Lance 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 Flask Academy?

Sí. Cada lección de Flask 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

  1. abort y códigos de error HTTP
  2. Registre funciones errorhandler
  3. Lance clases de excepciones personalizadas
  4. Envoltorios de error JSON uniformes
← Volver a Flask Academy