0Pricing
Dart Academy · Aula

Tratamento de erros em código assíncrono

Use try/catch com await com segurança.

Tratamento de erros em código assíncrono é uma aula grátis de Dart Academy no CoddyKit. Esta é a aula 3 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Dart Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Dart Academy inclui 4 aulas no total.

Futures podem falhar

O trabalho assíncrono pode dar errado: um servidor pode exceder o tempo limite ou um arquivo pode estar ausente. Um Future pode ser concluído com um erro em vez de um valor.

try e catch com await

Envolva um await em try/catch, e um Future com falha lançará o erro exatamente nessa linha, assim como erros síncronos comuns.

try {
  final data = await fetch();
} catch (e) {
  print("failed: $e");
}

Capturando tipos específicos

Use uma cláusula on para tratar precisamente um tipo de erro, enquanto permite que outras falhas continuem subindo sem serem alteradas.

try {
  await load();
} on TimeoutException {
  print("too slow");
}

Inspecionando o erro

Adicione catch (e, s) para obter tanto o objeto de erro quanto seu rastreamento da pilha, o que facilita muito a depuração de falhas assíncronas.

catch (e, s) {
  print(e);
  print(s);
}

finally sempre é executado

Um bloco finally é executado independentemente de o await ter sido concluído com sucesso ou ter lançado um erro; por isso, é o lugar certo para fechar arquivos ou parar indicadores de carregamento.

try {
  await save();
} finally {
  closeFile();
}

Lançando um erro de async

Use throw dentro de uma função async, e o Future retornado será simplesmente concluído com esse erro, pronto para ser capturado por quem o chamou.

Future<int> risky() async {
  throw StateError("nope");
}

Erros em cadeias de then

Sem await, associe catchError a um Future para tratar uma falha em uma cadeia no estilo de then.

fetch().then(use).catchError(handle);

Recuperando com um padrão

Em catchError ou catch, você pode retornar um valor de fallback, permitindo que o programa continue de forma adequada após uma falha.

Erros de Future não tratados

Um Future com falha que é ignorado se transforma em um erro não capturado, que pode encerrar o aplicativo ou gerar registros de erro excessivos. Sempre capture ou aguarde seus Futures.

Relançando quando necessário

Use rethrow dentro de um catch para registrar uma falha aqui e ainda permitir que um manipulador externo também a trate.

catch (e) {
  log(e);
  rethrow;
}

await dentro de finally

Você pode até usar await dentro de finally para realizar uma limpeza assíncrona, como esvaziar um buffer, antes que a função retorne.

Verificação rápida

Verificação rápida sobre a captura de erros assíncronos.

Recapitulação: erros assíncronos

Você aprendeu a proteger await com try/catch, direcionar tipos com on, fazer a limpeza em finally e recuperar ou relançar erros. 🛡️

Perguntas Frequentes

A aula “Tratamento de erros em código assíncrono” é grátis?

Sim — o texto completo de “Tratamento de erros em código assíncrono” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Dart Academy, atualize para CoddyKit PRO. O curso de Dart Academy inclui 4 aulas no total.

O que vou aprender em “Tratamento de erros em código assíncrono”?

Use try/catch com await com segurança. Você pratica Dart Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar Dart Academy?

Nenhuma experiência prévia é necessária. Dart Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 3 de 4.

Quanto tempo leva a aula “Tratamento de erros em código assíncrono”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de Dart Academy?

Sim. Cada aula de Dart Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. O loop de eventos e as microtarefas
  2. Criar e aguardar Futures
  3. Tratamento de erros em código assíncrono
  4. Future.wait e trabalho paralelo
← Voltar para Dart Academy