0Pricing
Dart Academy · Aula

finally e limpeza garantida

Execute o código independentemente de ocorrer uma exceção.

finally e limpeza garantida é 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.

A limpeza deve sempre ser executada

Arquivos e conexões abertos devem ser fechados mesmo quando o código falha. O Dart oferece finally para uma limpeza que sempre acontece. 🧹

O bloco finally

Um bloco finally é executado depois de try e catch, independentemente do resultado. Com sucesso ou falha, seu código sempre é executado.

try {
  work();
} finally {
  cleanup();
}

Executado após o sucesso

Se o bloco de tentativa termina sem erro, o Dart ainda executa a finalização logo depois, antes de prosseguir.

Executado após uma captura

Quando uma exceção é capturada, o bloco de captura é executado e, em seguida, a finalização também é executada. Ambas ocorrem nessa ordem.

try {
  fail();
} catch (e) {
  log(e);
} finally {
  close();
}

Executado mesmo sem captura

Use a tentativa somente com a finalização, sem captura. A exceção ainda se propaga, mas a limpeza é executada primeiro durante a saída.

try {
  risky();
} finally {
  release();
}

Por que não simplesmente duplicar?

Sem a finalização, você copiaria a limpeza para os caminhos de sucesso e de erro. Um único bloco de finalização mantém tudo em um só lugar.

Limpeza antes de relançar

Mesmo quando uma exceção continua subindo sem ser capturada, a finalização ainda é executada primeiro, para que os recursos nunca sejam perdidos.

Fechando um arquivo com segurança

Um uso clássico: abra um recurso no bloco de tentativa, use-o e depois faça a finalização fechá-lo, independentemente de a leitura ter sido bem-sucedida.

try {
  file.read();
} finally {
  file.close();
}

Evite retornar na finalização

Um retorno dentro da finalização substitui qualquer retorno ou exceção anterior. Use a finalização somente para limpeza, não para controlar o fluxo.

Ordem de execução

Lembre-se da sequência: a tentativa é executada, depois a captura se necessário e, por fim, a finalização. A limpeza sempre encerra o bloco.

Tentativa-captura-finalização completa

Isto combina os três elementos: trabalho protegido, tratamento de erros e limpeza garantida no bloco de finalização ao fim.

try {
  open();
} catch (e) {
  print(e);
} finally {
  close();
}

Verificação rápida

Quando um bloco de finalização é executado?

Recapitulação

Agora você usa a finalização para garantir uma limpeza executada em todos os caminhos: sucesso, erro capturado ou lançamento não capturado. Sem vazamentos. 🔒

Perguntas Frequentes

A aula “finally e limpeza garantida” é grátis?

Sim — o texto completo de “finally e limpeza garantida” é 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 “finally e limpeza garantida”?

Execute o código independentemente de ocorrer uma exceção. 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 “finally e limpeza garantida”?

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. throw, try e catch
  2. Cláusulas on e tipos de exceção
  3. finally e limpeza garantida
  4. Exceções personalizadas e rethrow
← Voltar para Dart Academy