Python Разработка | Web Backend, Парсинг & Telegram Bots. Пайтон программирование с нуля. Django, FastAPI и SQL. Уроки для начинающих и IT карьера. Coding.
Образование · 13 апреля 2026 г.
Начиная с Python 3.0, при возникновении нового исключения внутри блока except перехваче... — 13 апреля 2026 г. в 08:17:58.668
Начиная с Python 3.0, при возникновении нового исключения внутри блока except перехваченное исключение автоматически сохраняется в атрибуте __context__ создаваемого исключения. В результате при выводе будут показаны оба исключения: try: 1 / 0 except ZeroDivisionError: raise ValueError('Zero!') (most recent call last): File "test.py", line 2, in <module> 1 / 0 ZeroDivisionError: division by zero During handling of the above exception, another exception occurred: Traceback (most recent call last): File "test.py", line 4, in <module> raise ValueError('Zero!') ValueError: Zero! Кроме того, вы можете явно указать причинное исключение, использовав конструкцию raise … from. Тогда в атрибут __cause__ нового исключения будет помещено исходное: division_error = None try: 1 / 0 except ZeroDivisionError as e: division_error = e raise ValueError('Zero!') from division_error (most recent call last): File "test.py", line 4, in <module> 1 / 0 ZeroDivisionError: division by zero The above exception was the direct cause of the following exception: Traceback (most recent call last): File "test.py", line 8, in <module> raise ValueError('Zero!') from division_error ValueError: Zero! 👉 @BookPython

