Usando try...catch: tentando algo e pegando o erro se acontecer
Aprenda a estrutura try...catch para lidar com erros de forma controlada no seu código.
Quando você programa, alguns trechos podem falhar.
O try...catch é como um plano de emergência: você tenta executar algo, e se der problema, trata o erro sem “quebrar tudo”.
Estrutura básica
try {
// código que pode gerar erro
} catch (erro) {
// o que fazer se houver erro
}
try: bloco “tentativa”catch: bloco “resposta ao erro”
Exemplo simples
try {
const resultado = JSON.parse("{ nome: 'Ana' }"); // JSON inválido
console.log(resultado);
} catch (erro) {
console.log("Ops! Não foi possível converter o JSON.");
}
Nesse caso, o código dentro de try falha e o fluxo vai para catch.
Por que isso é importante?
Sem tratamento, um erro pode interromper parte da execução.
Com try...catch, você consegue:
- mostrar mensagem amigável ao usuário
- registrar erro no console/log
- manter a aplicação funcionando em outras partes
O parâmetro do catch
No catch (erro), a variável erro traz detalhes úteis:
erro.name(tipo do erro)erro.message(mensagem)erro.stack(rastreamento técnico)
Exemplo:
try {
naoExiste();
} catch (erro) {
console.log(erro.name); // ReferenceError
console.log(erro.message); // naoExiste is not defined
}
finally: sempre executa
Você também pode usar finally, que roda com sucesso ou com erro.
try {
console.log("Tentando...");
} catch (erro) {
console.log("Deu erro");
} finally {
console.log("Finalizando processo");
}
Ótimo para ações de encerramento, como esconder loading.
Lançando erro manualmente com throw
Às vezes você quer validar algo e forçar um erro para tratar depois.
function validarIdade(idade) {
if (idade < 18) {
throw new Error("Idade mínima é 18");
}
return "Acesso liberado";
}
try {
console.log(validarIdade(16));
} catch (erro) {
console.log("Validação falhou:", erro.message);
}
Boas práticas com try...catch
- Use em pontos realmente críticos (requisições, parse de JSON, validações).
- Não “engula” erro silenciosamente.
- Mostre mensagem clara para usuário, mas mantenha detalhe técnico para debug.
- Evite colocar código demais em um único
try.
Resumo da lição
try...catchpermite tratar erros de forma controlada.catchrecebe o erro e ajuda a entender o que aconteceu.finallysempre executa no final.throwpermite criar erros personalizados para validações e regras.