Flask Academy · Lekcja

Zgłaszanie własnych klas wyjątków

Zdefiniuj błędy domenowe odwzorowywane na JSON.

Lekcja 3 z 413 kroki

Zgłaszanie własnych klas wyjątków to bezpłatna lekcja Flask Academy na CoddyKit. To lekcja 3 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Flask Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Flask Academy zawiera 4 lekcji w sumie.

Błędy opisujące domenę aplikacji

Liczby takie jak 400 są ogólne. Własny wyjątek nazywa rzeczywisty problem, na przykład nieudaną płatność lub przekroczony limit.

Dziedziczenie po Exception

Najpierw definiuje się klasę dziedziczącą po Exception. Dzięki temu otrzymuje się własny, jasno określony błąd, który można zgłaszać.

class PaymentError(Exception):
    pass

Dodawanie kodu statusu

Dodaj do klasy atrybut status_code, aby handler wiedział, jaki kod HTTP wysłać po wystąpieniu błędu.

class PaymentError(Exception):
    status_code = 402

Przechowywanie komunikatu

Przechowuj komunikat dla użytkownika w konstruktorze. Później handler będzie mógł go odczytać i umieścić w treści odpowiedzi.

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

Zgłaszanie błędu w widoku

W widoku wystarczy użyć raise, gdy coś pójdzie nie tak. Flask wyszuka wtedy pasujący handler.

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

Obsługa własnej klasy

Zarejestruj errorhandler dla swojej klasy. Otrzyma on instancję wyjątku, dzięki czemu można odczytać zarówno jej komunikat, jak i kod statusu.

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

Zwracanie z niego JSON

W przypadku API przekształć błąd w JSON wewnątrz handlera. Klienci otrzymają ustrukturyzowany błąd, który mogą niezawodnie przeanalizować.

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

Jedna baza dla wielu błędów

Utwórz jedną klasę bazową, a następnie pozwól, aby konkretne błędy po niej dziedziczyły. Jeden handler będzie wtedy obsługiwać całą rodzinę błędów.

class ApiError(Exception):
    pass

Rozsądne wartości domyślne

Ustaw w klasie bazowej domyślny status_code, na przykład 400. Klasy pochodne zmienią go tylko wtedy, gdy potrzebują innego kodu.

class ApiError(Exception):
    status_code = 400

Usuwanie logiki z widoków

Zgłaszanie błędów domenowych pozwala skrócić widoki. Handler odpowiada za formatowanie, więc każdy widok tylko sygnalizuje, co poszło nie tak.

Dlaczego to rozwiązanie dobrze skaluje się

W miarę rozwoju aplikacji własne wyjątki utrzymują logikę błędów w jednym uporządkowanym miejscu. Nowe typy błędów można podłączyć do tego samego przejrzystego procesu.

Szybkie sprawdzenie

Jak widok wywołuje błąd domenowy?

Podsumowanie

Utworzyłeś klasy własnych wyjątków z kodem statusu i komunikatem, zgłaszałeś je w widokach oraz mapowałeś na przejrzysty JSON. Doskonale!

Bezpłatny start

Ucz się Python dzięki korepetycjom AI — za darmo

Pisz i uruchamiaj kod w przeglądarce, otrzymuj natychmiastową pomoc od korepetytora AI dostępnego 24/7 i kontynuuj naukę w sieci lub w aplikacji.

Kursy
30
Lekcje
120

Często zadawane pytania

Czy lekcja „Zgłaszanie własnych klas wyjątków” jest bezpłatna?

Tak — pełny tekst „Zgłaszanie własnych klas wyjątków” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Flask Academy, przejdź na CoddyKit PRO. Kurs Flask Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „Zgłaszanie własnych klas wyjątków”?

Zdefiniuj błędy domenowe odwzorowywane na JSON. Ćwiczysz Flask Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć Flask Academy?

Nie wymagamy żadnego doświadczenia. Flask Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 3 z 4.

Ile czasu zajmuje lekcja „Zgłaszanie własnych klas wyjątków”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji Flask Academy?

Tak. Każda lekcja Flask Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. abort i kody błędów HTTP
  2. Rejestrowanie funkcji errorhandler
  3. Zgłaszanie własnych klas wyjątków
  4. Jednolite koperty błędów JSON
← Powrót do Flask Academy