Quando algo falha
Há operações que podem falhar: ler um dado que não existe, converter um
texto em número, dividir por zero de forma inválida... Se você não controlar
isso, um erro interrompe a execução do programa. Para tratá-lo de forma
controlada usa-se o bloco try...catch.
try {
// código que pode falhar
const dados = JSON.parse("isto não é JSON");
} catch (error) {
// executa apenas se houve um erro
console.log("Algo deu errado:", error.message);
}
- O bloco
trycontém o código "arriscado". - Se um erro for lançado, o controle salta para o bloco
catch, que recebe o objeto de erro. - Se não houver erro,
catché ignorado por completo.
O bloco finally
É opcional e executa sempre, havendo erro ou não. Serve para tarefas de limpeza (fechar conexões, ocultar um indicador de carregamento...):
try {
fazerAlgo();
} catch (error) {
console.log("Erro:", error.message);
} finally {
console.log("Isto executa aconteça o que acontecer");
}
Exemplos
Capturar um erro e continuar
function parsear(texto) {
try {
return JSON.parse(texto);
} catch (error) {
console.log("JSON inválido:", error.message);
return null;
}
}
console.log(parsear('{"ok":true}'));
console.log(parsear("não é json"));