Tratamento de Exceções (try/catch)
Quando algo dá errado — analisar JSON inválido, chamar um método que não existe — o JavaScript lança um erro. Se não for capturado, isso derruba seu programa. try/catch permite capturá-lo e decidir o que acontece em vez disso.
try {
const result = JSON.parse("not valid json");
} catch (error) {
console.log("Could not parse JSON!");
}Could not parse JSON!
O JavaScript tenta rodar o código dentro de try. No momento em que JSON.parse() lança um erro, ele pula direto para o bloco catch em vez de travar — o programa continua rodando normalmente depois disso.
Acessando o erro real, e finally
catch (error) permite acessar o objeto de erro real — útil para registrar logs ou mostrar uma mensagem real em vez de uma genérica. finally roda não importa o que aconteceu — se um erro foi lançado ou não — o que faz dele o lugar certo para código de limpeza.
try {
const result = JSON.parse("not valid json");
} catch (error) {
console.log(`Error: ${error.message}`);
} finally {
console.log("This always runs");
}Error: Unexpected token o in JSON at position 1 This always runs
Essa mensagem de erro veio do motor real do JavaScript, não é algo escrito para parecer plausível — é genuinamente o que você verá se executar exatamente esse código.
A seguir: classes — agrupando dados junto com as funções que trabalham sobre eles.
Exercício de Prática
Tente analisar a string "abc" como JSON com JSON.parse(), capture o erro, e imprima "Not valid JSON" em vez de travar.