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Сообщить о неточности