Python Glossary English

Python 3.13+Исключенияисключение

PythonFinalizationError

встроенные исключения

Операция запрещена во время финализации интерпретатора (напр. запуск нового потока при завершении, 3.13+).

Синтаксис

raise PythonFinalizationError

Появился в 3.13 и наследует RuntimeError; возникает, когда во время выключения интерпретатора код пытается сделать запрещённое — запустить новый поток, форкнуться, создать подпроцесс. Обычно виноват код, доделывающий работу слишком поздно: __del__, обработчик atexit или недожитый daemon-поток. Лечится не try/except, а тем, чтобы завершить и присоединить фоновые задачи до выхода; на версиях до 3.13 та же ситуация выглядит как обычный RuntimeError.

Примеры

try:
    raise PythonFinalizationError
except PythonFinalizationError as e:
    print(type(e).__name__)   # → PythonFinalizationError

См. также

Открыть в полном глоссарииdocs.python.orgСообщить о неточности