throw, try e catch
Detecte e responda a falhas.
throw, try e catch é uma aula grátis de Dart Academy no CoddyKit. Esta é a aula 1 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.
Quando as coisas dão errado
Os programas enfrentam problemas: entrada inválida, arquivos ausentes e cálculos incorretos. O Dart sinaliza isso com uma exceção, em vez de falhar silenciosamente. 🚨
Lançando uma exceção
O senhor levanta um problema por conta própria com throw. Isso interrompe o fluxo normal exatamente onde ocorre e transfere o controle para um tratador.
throw Exception('Something failed');O senhor pode lançar qualquer coisa
O Dart permite throw de quase qualquer objeto, até mesmo uma String. Na prática, lance objetos reais de Exception ou Error para manter os tratadores claros.
throw FormatException('Bad number');Protegendo código arriscado
Coloque o código que pode falhar dentro de um bloco try. O Dart o executa normalmente, mas fica pronto para reagir caso algo seja lançado.
try {
risky();
}Capturando o problema
Um bloco catch é executado somente quando o bloco try lança algo. Ele recebe o objeto lançado para que o senhor possa analisá-lo e reagir.
try {
risky();
} catch (e) {
print('Caught: $e');
}O fluxo avança
Quando ocorre um lançamento, o restante do bloco try é ignorado imediatamente. O Dart salta diretamente para o bloco catch correspondente.
Lendo o objeto de erro
A variável em catch (e) contém o que foi lançado. Imprimi-la geralmente exibe uma mensagem útil descrevendo o que falhou.
catch (e) {
print(e);
}Obtendo o rastreamento da pilha
Adicione uma segunda variável a catch para obter o rastreamento da pilha. Ele mostra o caminho de chamadas que levou à falha, facilitando a depuração.
catch (e, stack) {
print(stack);
}Recupere-se, não trave
O objetivo de capturar uma exceção é a recuperação. Em vez de travar, o senhor pode registrar, tentar novamente ou mostrar uma alternativa amigável ao usuário.
Não capturado significa travamento
Se nada capturar uma exceção lançada, ela se propaga e o programa trava, exibindo um erro no console.
Um exemplo completo
Este é o padrão completo: um throw dentro de try, capturado e tratado com elegância para que a execução continue depois.
try {
throw Exception('Oops');
} catch (e) {
print('Handled: $e');
}Verificação rápida
Qual bloco realmente reage a uma exceção lançada?
Recapitulação
Agora o senhor sinaliza problemas com throw, protege código arriscado em try e se recupera em catch. Esse trio mantém o programa em funcionamento. 🎉
Perguntas Frequentes
A aula “throw, try e catch” é grátis?
Sim — o texto completo de “throw, try e catch” é 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 “throw, try e catch”?
Detecte e responda a falhas. 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 1 de 4.
Quanto tempo leva a aula “throw, try e catch”?
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
- throw, try e catch
- Cláusulas on e tipos de exceção
- finally e limpeza garantida
- Exceções personalizadas e rethrow