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 depthtraceback.TracebackException — exceptions as datapredict138 / 161
+150 XP
Zadanie
📝 **Zadanie:** Przewiduj wynik 5-liniowy. Wywoływana jest funkcja „dzielenie(a, b)” z b=0, co powoduje wystąpienie błędu ZeroDivisionError. Wewnątrz bloku z wyjątkiem budujemy wyjątek TracebackException i wypisujemy jego nazwę exc_type, liczbę ramek, nazwę ostatniej ramki, całkowitą liczbę sformatowanych linii i pierwszą sformatowaną linię. 📋 Zaimplementuj powyższą funkcję. Testy uruchamiają się automatycznie. 💡 **Wskazówka:** Jeśli utkniesz, przeczytaj ponownie teorię.
Przewiduj wynik

Przeczytaj kod uważnie

import traceback


def divide(a: int, b: int) -> float:
    return a / b


try:
    divide(10, 0)
except Exception as e:
    te = traceback.TracebackException.from_exception(e)
    print(f"exc_type: {type(e).__name__}")
    print(f"frames: {len(te.stack)}")
    print(f"last frame: {te.stack[-1].name}")
    lines = list(te.format())
    print(f"line count: {len(lines)}")
    print(f"first line: {lines[0].rstrip()}")

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…