0Pricing
Flask Academy · Lezione

Sollevare classi di eccezioni personalizzate

Definisca errori di dominio da associare al JSON.

Sollevare classi di eccezioni personalizzate è una lezione Flask Academy gratuita su CoddyKit. Questa è la lezione 3 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Flask Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Flask Academy include 4 lezioni in totale.

Parti di questa lezione non sono ancora state tradotte e vengono mostrate in inglese.

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!

Domande Frequenti

La lezione «Sollevare classi di eccezioni personalizzate» è gratuita?

Sì — il testo completo di «Sollevare classi di eccezioni personalizzate» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Flask Academy, passa a CoddyKit PRO. Il corso Flask Academy include 4 lezioni in totale.

Cosa imparerò in «Sollevare classi di eccezioni personalizzate»?

Definisca errori di dominio da associare al JSON. Eserciti Flask Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare Flask Academy?

Non è richiesta alcuna esperienza precedente. Flask Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 3 di 4.

Quanto tempo richiede la lezione «Sollevare classi di eccezioni personalizzate»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione Flask Academy?

Sì. Ogni lezione Flask Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. abort e codici di errore HTTP
  2. Registrare funzioni errorhandler
  3. Sollevare classi di eccezioni personalizzate
  4. Envelope di errore JSON uniformi
← Torna a Flask Academy