AnyCompiler

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!");
}
Output
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");
}
Output
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.