Python · Avançado · Inglês · Técnico
ExceptionGroup
Exceção do Python 3.11 que agrupa várias exceções ao mesmo tempo, usada pelo TaskGroup. É tratada com a sintaxe except*, que captura por tipo apenas parte do grupo.
Onde usar
Surge ao rodar tarefas concorrentes que podem falhar juntas. O except* trata cada tipo de erro separadamente e deixa os demais seguirem.
Em código
try:
raise ExceptionGroup('erros', [
ValueError(1), TypeError(2)])
except* ValueError as g:
print('valores:', g.exceptions)
except* TypeError:
print('tipos')Exemplos
Catch the ValueError inside the ExceptionGroup with except star.
Capture o ValueError dentro do ExceptionGroup com except star.
The task group raised an ExceptionGroup with three errors.
O task group levantou um ExceptionGroup com três erros.
Cuidado
Um except* não se mistura com except comum no mesmo try, e dentro do bloco a variável é um grupo, não uma exceção única.
Sinônimos
grupo de exceções