Przejdź do treści głównej
🔒 Tryb podglądu. Pierwszych piętnaście lekcji Foundations jest darmowych; ta jest Pro. Rozpocznij 7-dniowy trial, aby odblokować edytor, podpowiedzi AI i resztę kursu. Wymagana karta, anulujesz w dowolnym momencie w Dashboard.Rozpocznij 7-dniowy trial →
← KursySenior Deep-DivesModule 9 · Error handling depthCustom exception hierarchies — most-specific except firstpredict134 / 161
+150 XP
Zadanie
📝 **Zadanie:** Przewiduj dokładny wynik 5-liniowy. Funkcja handle() próbuje każdego wyjątku względem uporządkowanego łańcucha z wyjątkiem. Łańcuch jest celowo ułożony z najgłębszą podklasą na górze. Śledź, która klauzula przechwytuje każde z pięciu wejść testowych. 📋 Zaimplementuj powyższą funkcję. Testy uruchamiają się automatycznie. 💡 **Wskazówka:** Jeśli utkniesz, przeczytaj ponownie teorię.
Przewiduj wynik

Przeczytaj kod uważnie

class AppError(Exception):
    pass


class NotFound(AppError):
    pass


class ValidationError(AppError):
    pass


class FieldError(ValidationError):
    pass


def handle(exc: Exception) -> str:
    try:
        raise exc
    except FieldError:
        return "field"
    except ValidationError:
        return "validation"
    except NotFound:
        return "not-found"
    except AppError:
        return "app"
    except Exception:
        return "unknown"


print(handle(FieldError("email bad")))
print(handle(ValidationError("schema bad")))
print(handle(NotFound("user 42")))
print(handle(AppError("generic")))
print(handle(ValueError("not ours")))

Co wypisze program? Napisz tutaj:

💬 Dyskusja

Zadaj pierwsze pytanie lub podziel się wskazówką.
Zaloguj się aby dołączyć do dyskusji. Czytanie jest darmowe.
Ładowanie dyskusji…