Zgłaszanie własnych klas wyjątków
Zdefiniuj błędy domenowe odwzorowywane na JSON.
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):
passDodawanie 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 = 402Przechowywanie 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 = messageZgł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_codeZwracanie 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_codeJedna 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):
passRozsą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 = 400Usuwanie 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!
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
- abort i kody błędów HTTP
- Rejestrowanie funkcji errorhandler
- Zgłaszanie własnych klas wyjątków
- Jednolite koperty błędów JSON