Tratamento de erros no JavaScript
Controle de Fluxo / Tutorial JavaScript
O tratamento de erros no JavaScript é feito principalmente com as estruturas try
, catch
, finally
e a palavra-chave throw
. Essas ferramentas permitem capturar e lidar com erros de forma controlada, evitando que eles interrompam a execução do programa.
Estrutura básica
A estrutura básica para tratar erros é a seguinte:
try {
// Código que pode gerar um erro
} catch (erro) {
// Código para lidar com o erro
} finally {
// Código que será executado sempre, com ou sem erro (opcional)
}
Exemplo:
try {
let resultado = 10 / 0
console.log("Resultado:", resultado)
} catch (erro) {
console.log("Ocorreu um erro:", erro.message)
} finally {
console.log("Bloco finally executado.")
}
Saída:
Resultado: Infinity
Bloco finally executado.
Lançando erros com throw
Você pode usar a palavra-chave throw
para lançar erros personalizados.
Exemplo:
function dividir(a, b) {
if (b === 0) {
throw new Error("Divisão por zero não é permitida.")
}
return a / b
}
try {
console.log(dividir(10, 0))
} catch (erro) {
console.log("Erro capturado:", erro.message)
}
Saída:
Erro capturado: Divisão por zero não é permitida.
Exemplos de cenários reais
Validar entrada do usuário
function validarIdade(idade) {
if (idade < 0) {
throw new Error("Idade não pode ser negativa.")
}
return "Idade válida."
}
try {
console.log(validarIdade(-5))
} catch (erro) {
console.log("Erro:", erro.message)
}
Saída:
Erro: Idade não pode ser negativa.
Ler JSON com erro de sintaxe
let json = '{"nome": "Arthur", "idade": 25' // JSON inválido
try {
let dados = JSON.parse(json)
console.log(dados)
} catch (erro) {
console.log("Erro ao analisar JSON:", erro.message)
}
Saída:
Erro ao analisar JSON: Unexpected end of JSON input
Dicas práticas
- Use
try...catch
para capturar erros em operações críticas, como requisições de rede ou manipulação de arquivos. - Sempre forneça mensagens de erro claras ao usar
throw
. - O bloco
finally
é útil para liberar recursos, como fechar conexões ou limpar dados temporários. - Evite capturar erros genéricos sem tratá-los adequadamente, pois isso pode mascarar problemas no código.
Com o tratamento de erros, você pode tornar seu código mais robusto e confiável. Experimente usar essas ferramentas para lidar com situações inesperadas no seu programa!