Trước 3.11, một khối except chỉ bắt được một exception. Khi nhiều tác vụ chạy song song (vd asyncio.TaskGroup) và nhiều cái lỗi cùng lúc, không có cách nào biểu diễn hay xử lý cả chùm lỗi một cách trọn vẹn.
ExceptionGroup gói nhiều exception vào một object duy nhất. Cú pháp mới *except bắt theo từng loại** bên trong nhóm: phần khớp được xử lý, phần còn lại tiếp tục lan lên dưới dạng nhóm nhỏ hơn.
python
try:
async with asyncio.TaskGroup() as tg:
...
except* ValueError as eg:
... # xử lý các ValueError trong nhóm
except* TypeError as eg:
... # xử lý các TypeError trong nhóm