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 depthMis-ordered except clauses — when subclass handlers become dead codepredict135 / 161
+150 XP
Zadanie
📝 **Zadanie:** Przewiduj dokładny wynik 4-liniowy. Łańcuch ma „z wyjątkiem wyjątku:” NA GÓRĘ. Prześledź każde wejście w łańcuchu i zidentyfikuj, która klauzula faktycznie uruchamia się. 📋 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


def categorise(exc: Exception) -> str:
    try:
        raise exc
    except Exception:
        return "generic"
    except AppError:
        return "app"
    except NotFound:
        return "not-found"
    except ValidationError:
        return "validation"


print(categorise(NotFound("user 42")))
print(categorise(ValidationError("schema bad")))
print(categorise(AppError("generic")))
print(categorise(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…