TypeScript:
Tratamento de erros

Como fazer:

Em TypeScript, o tratamento de erros frequentemente envolve blocos try, catch e finally.

function operacaoArriscada() {
  throw new Error("Algo deu errado!");
}

function tratarErros() {
  try {
    operacaoArriscada();
  } catch (erro) {
    console.error("Erro capturado:", erro.message);
  } finally {
    console.log("Isso sempre executa, com erro ou não.");
  }
}

tratarErros();

Saída de exemplo:

Erro capturado: Algo deu errado!
Isso sempre executa, com erro ou não.

Exemplo assíncrono com promessas:

async function operacaoArriscadaAsync() {
  return new Promise((resolve, reject) => {
    // Simular um erro
    reject("Falhou miseravelmente");
  });
}

async function tratarErrosAsync() {
  try {
    await operacaoArriscadaAsync();
  } catch (erro) {
    console.error("Erro assíncrono capturado:", erro);
  }
}

tratarErrosAsync();

Saída de exemplo:

Erro assíncrono capturado: Falhou miseravelmente

Aprofundamento

O tratamento de erros tem sido um pilar da programação desde o seu início. No TypeScript, que se baseia em JavaScript, o tratamento de erros se tornou mais robusto com a introdução do async/await no ECMAScript 2017. Antes disso, frequentemente dependíamos de funções de retorno de chamada (callbacks) e promessas para tratar erros em código assíncrono.

Uma alternativa ao try/catch em TypeScript é o uso de limites de erro fornecidos por frameworks como o React. Para o tratamento do lado do servidor, podemos usar middleware em plataformas como o Express.js para centralizar a gestão de erros.

Em termos de implementação, o TypeScript não tem seu próprio mecanismo de tratamento de erros, mas depende do JavaScript. Classes de erro personalizadas podem estender a classe Error para oferecer informações de erro mais descritivas.

Veja Também