Flask Academy · Lektion

Registrér errorhandler-funktioner

Tilpas svar for 404 og 500.

Lektion 2 af 413 trin

Registrér errorhandler-funktioner er en gratis Flask Academy-lektion på CoddyKit. Dette er lektion 2 af 4. Du kan læse hele lektionen gratis nedenfor — og derefter øve dig praktisk i browseren med en indbygget kodeeditor og en AI-vejleder, der er tilgængelig døgnet rundt. Den er en del af læringsforløbet i Flask Academy, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Flask Academy-kurset indeholder 4 lektioner i alt.

Ud over standardsiden

Flask viser som standard en enkel fejlside. Du kan erstatte den ved at registrere din egen errorhandler for enhver statuskode.

Decoratoren errorhandler

Du knytter en funktion til en kode med en decorator. Denne handler kører, hver gang den pågældende fejl opstår et sted i din app.

@app.errorhandler(404)
def not_found(e):
    return "Nothing here", 404

Returnér en tuple

En handler returnerer en brødtekst og en statuskode ligesom et view. Statuskoden sørger for, at svaret korrekt angiver, hvad der gik galt.

return "Not found", 404

Fejlargumentet

Hver håndteringsfunktion modtager fejlobjektet som sit argument. Du kan læse dets beskrivelse eller kode for at tilpasse dit svar.

def not_found(e):
    return str(e.description), 404

Håndtering af 500-fejl

Uventede nedbrud bliver til en 500. Registrer en håndteringsfunktion, så brugerne ser en rolig besked i stedet for et råt stakspor.

@app.errorhandler(500)
def boom(e):
    return "Server error", 500

Vis en skabelon i stedet

De fleste apps returnerer en formateret side ved fejl. Kald blot render_template i håndteringsfunktionen, og send statuskoden med.

return render_template("404.html"), 404

Returner JSON til API'er

Et API bør svare på fejl med JSON, ikke HTML. Brug jsonify, så klienter nemt kan fortolke fejlen.

return jsonify(error="Not found"), 404

Håndteringsfunktioner fanger også abort

Hvis du kalder abort med en kode, udløses den tilsvarende håndteringsfunktion. Derfor kan én errorhandler dække både nedbrud og dine egne aborter.

Håndter undtagelsesklasser

Du kan registrere en håndteringsfunktion efter undtagelsestype, ikke kun efter tal. Send en undtagelsesklasse for at fange en hel familie på én gang.

@app.errorhandler(ValueError)
def bad(e):
    return "Bad value", 400

På tværs af appen eller blueprint

Håndteringsfunktioner på app gælder overalt, mens en blueprint kan afgrænse sin egen. På den måde kan hver del af en stor app håndtere fejl på sin egen måde.

Hvorfor brugerdefinerede håndteringsfunktioner hjælper

Ensartede fejlsider holder dit brand og dit API ryddeligt. En central håndteringsfunktion betyder, at du kan rette beskeden ét sted.

Hurtigt tjek

Find den dekorator, der tilpasser svaret for en manglende side.

Opsummering

Du kan nu registrere funktioner med errorhandler, læse fejlobjektet og returnere HTML eller JSON med den rigtige kode. Flot fremgang!

Gratis at komme i gang

Lær Python med en AI-underviser — gratis

Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.

Kurser
30
Lektioner
120

Ofte stillede spørgsmål

Er lektionen “Registrér errorhandler-funktioner” gratis?

Ja — hele teksten til “Registrér errorhandler-funktioner” kan læses gratis her på nettet. Hvis du vil øve dig interaktivt med en indbygget kodeeditor og en AI-vejleder døgnet rundt og få adgang til resten af Flask Academy-kurset, skal du opgradere til CoddyKit PRO. Flask Academy-kurset indeholder 4 lektioner i alt.

Hvad lærer jeg i “Registrér errorhandler-funktioner”?

Tilpas svar for 404 og 500. Du øver dig i Flask Academy med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.

Skal jeg have erfaring for at begynde på Flask Academy?

Der kræves ingen tidligere erfaring. Flask Academy på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 2 af 4.

Hvor lang tid tager lektionen “Registrér errorhandler-funktioner”?

De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.

Kan jeg skrive og køre kode i denne Flask Academy-lektion?

Ja. Alle Flask Academy-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.

Alle lektioner i dette kursus

  1. abort og HTTP-fejlkoder
  2. Registrér errorhandler-funktioner
  3. Kast brugerdefinerede exception-klasser
  4. Ensartede JSON-fejlindpakninger
← Tilbage til Flask Academy