Python 3.11+Исключенияисключение
BaseExceptionGroup
встроенные исключения
Базовая группа исключений, включающая системные (SystemExit/KeyboardInterrupt); родитель ExceptionGroup (3.11+).
Синтаксис
raise BaseExceptionGroup
Главная ловушка: это потомок BaseException, а не Exception, поэтому обычный except Exception группу не поймает — даже если внутри лежат самые обычные ValueError. Конструктор к тому же хитрый: если все вложенные исключения — подклассы Exception, BaseExceptionGroup(...) вернёт вам ExceptionGroup. Разбирать группу по частям нужно через except*, обычный except срабатывает на всю группу целиком.
Примеры
try:
raise BaseExceptionGroup('группа', [KeyboardInterrupt()])
except BaseExceptionGroup as e:
print(type(e).__name__) # → BaseExceptionGroup
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности