Написать класс ExceptionTree, экземпляр которого конструирует объекты-исключения, иерархия которых соответствует двоичному дереву:

Единственный параметр при вызове экземпляра — индекс исключения в этом дереве. Индекс хранится также в самом исключении в виде поля .n.

   1 etree = ExceptionTree()
   2 excs = [etree(i) for i in (1, 2, 5, 12, 20)]
   3 for Ethrow in excs:
   4     print(f"Throw {Ethrow.n}", end="")
   5     for Ecatch in excs:
   6         if Ethrow != Ecatch:
   7             try:
   8                 raise Ethrow
   9             except Ecatch:
  10                 print(f", {Ecatch.n} caught", end="")
  11             except Exception:
  12                 print(f", {Ecatch.n} missed", end="")
  13     print()

Throw 1, 2 missed, 5 missed, 12 missed, 20 missed
Throw 2, 1 caught, 5 missed, 12 missed, 20 missed
Throw 5, 1 caught, 2 caught, 12 missed, 20 missed
Throw 12, 1 caught, 2 missed, 5 missed, 20 missed
Throw 20, 1 caught, 2 caught, 5 caught, 12 missed


CategoryHomework

LecturesCMC/PythonIntro2024/Homework_ExceptionTree (last edited 2024-11-11 20:09:54 by FrBrGeorge)