Iniciante Fundamentos

Tratamento de erros

Tratar erros corretamente evita que o programa quebre de forma inesperada. No Node.js usamos try/catch, throw e o tratamento específico para código assíncrono.

try / catch

Envolve o código que pode falhar e captura o erro:

try {
  const dados = JSON.parse("texto inválido");
} catch (erro) {
  console.error("JSON inválido:", erro.message);
}

Lançar erros com throw

Você pode disparar seus próprios erros:

function dividir(a, b) {
  if (b === 0) {
    throw new Error("Divisão por zero");
  }
  return a / b;
}

try {
  dividir(10, 0);
} catch (erro) {
  console.error(erro.message);
}

Erros em código assíncrono

Com async/await, use try/catch normalmente:

async function ler() {
  try {
    const dados = await fs.readFile("x.txt", "utf8");
  } catch (erro) {
    console.error("Erro:", erro.message);
  }
}

Erros não capturados

Como rede de segurança, você pode ouvir erros globais:

process.on("uncaughtException", (erro) => {
  console.error("Erro fatal:", erro.message);
  process.exit(1);
});