Saltar para o conteúdo principal
🔒 Modo de pré-visualização. As primeiras quinze aulas de Foundations são grátis; esta é Pro. Inicie um trial de 7 dias para desbloquear o editor, as dicas AI e o resto do programa. Cartão necessário, cancele a qualquer momento no Dashboard.Iniciar trial de 7 dias →
← CursosSenior Deep-DivesModule 1 · Concurrency internals · Recapasyncio.TaskGroup (Python 3.11+) vs reunirpredict24 / 161
+125 XP
Tarefa
📝 **Pergunta:** Preveja o resultado exato. Três tarefas começam juntas: A termina em t=0,01, B gera ValueError em t=0,05, C terminaria em t=0,10. O que acontece com C quando B aumenta? Quantas exceções caem no grupo \`except*\`? 📋 Escolha a resposta certa. 💡 **Dica:** Releia a teoria acima se não tiver certeza.
Prevê a saída

Lê o código com atenção

import asyncio


async def task(name, delay, fail=False):
    await asyncio.sleep(delay)
    if fail:
        print(f"raise:{name}")
        raise ValueError(name)
    print(f"done:{name}")


async def main():
    try:
        async with asyncio.TaskGroup() as tg:
            tg.create_task(task("A", 0.01))
            tg.create_task(task("B", 0.05, fail=True))
            tg.create_task(task("C", 0.10))
    except* ValueError as eg:
        print(f"caught:{len(eg.exceptions)}")
    print("after")


asyncio.run(main())

O que o programa vai imprimir? Escreve aqui:

💬 Discussão

Seja o primeiro a fazer uma pergunta ou compartilhar uma dica.
Faça login para entrar na discussão. A leitura é gratuita.
Carregando discussão…