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 depthExceptionGroup + except* — multiple failures, one raisepredict139 / 161
+150 XP
Zadanie
📝 **Zadanie:** Przewiduj wynik 6-liniowy. Walidator zgłasza grupę wyjątków zawierającą 3 liście: 2 ValidationErrors i 1 TypeError. Dwie klauzule „except*” dzielą grupę według typu i wyświetlają to, co przechwycono. 📋 Zaimplementuj powyższą funkcję. Testy uruchamiają się automatycznie. 💡 **Wskazówka:** Jeśli utkniesz, przeczytaj ponownie teorię.
Przewiduj wynik

Przeczytaj kod uważnie

class ValidationError(Exception):
    pass


errors: list[Exception] = [
    ValidationError("email is invalid"),
    ValidationError("password too short"),
    TypeError("age must be int"),
]


try:
    raise ExceptionGroup("validation failed", errors)
except* ValidationError as eg:
    print(f"caught {len(eg.exceptions)} validation errors")
    for e in eg.exceptions:
        print(f"  - {e}")
except* TypeError as eg:
    print(f"caught {len(eg.exceptions)} type errors")
    for e in eg.exceptions:
        print(f"  - {e}")

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…