Lidando com erros em JavaScript: Uma introdução ao try-catch e then-catch
Published: 2023-05-16 13:14:39

Durante a execução de um código em JavaScript, podem ocorrer exceções que precisam ser tratadas de forma adequada para garantir o funcionamento correto do código. Existem duas abordagens comuns para lidar com erros em JavaScript que são: try-catch e then-catch. Neste artigo, exploraremos essas duas abordagens e como elas podem ser usadas para tratar diferentes tipos de erros.

##try-catch: Lidando com exceções síncronas

O try-catch é uma construção usada em várias linguagens de programação, incluindo JavaScript, para capturar e tratar exceções síncronas, ou seja, erros que ocorrem durante a execução de um trecho de código. Esta construção permite que você envolva um bloco de código em um try e capture exceções específicas em um bloco catch correspondente.

A estrutura básica do try-catch em JavaScript é a seguinte:

```Javascript
try {
  // Código que pode gerar uma exceção
} catch (error) {
  // Código para tratar a exceção
}
```

Durante a execução do código dentro do bloco try, se ocorrer uma exceção, o fluxo de controle será redirecionado imediatamente para o bloco catch. O objeto error (ou qualquer outro nome escolhido) conterá informações sobre a exceção lançada, como a mensagem de erro e outras propriedades relevantes. Dentro do bloco catch, você pode escrever o código necessário para lidar com a exceção, seja exibindo uma mensagem de erro, registrando informações de log ou executando ações corretivas apropriadas.

##then-catch: Lidando com promessas e exceções assíncronas

O JavaScript também oferece uma abordagem para lidar com exceções assíncronas usando as construções then e catch. Essa abordagem é normalmente usada em operações assíncronas baseadas em promessas (Promise), que são amplamente utilizadas para lidar com chamadas de API, por exemplo.

Quando uma promessa é criada caso haja sucesso ela irá para o bloco then onde o mesmo irá exibir o resultado caso a promessa dê erro ela irá direto para o bloco do catch onde também irá exibir seus devido resultado.

```Javascript
minhaPromessa.then(resultado => {
  // Código a ser executado quando a promessa é resolvida com sucesso
}).catch(error => {
  // Código a ser executado quando ocorre uma falha na promessa
});
```

Dentro do método then, você pode adicionar o código que será executado quando a Promessa for resolvida com sucesso. Neste bloco você pode realizar ações com base no resultado, como atualizar a interface do usuário, processar os dados recebidos e mostra-los para o usuário e etc.

Por outro lado, dentro do método catch, você pode adicionar o código que será executado quando ocorrer uma falha na Promessa. O parâmetro error representa o erro que ocorreu durante a execução da Promessa. Dentro dessa função de retorno de chamada, você pode lidar com o erro de acordo com as necessidades do seu código, como exibir uma mensagem de erro, registrar informações de log ou executar ações corretivas.

Resumidamente o try-catch é uma maneira eficaz de capturar e tratar exceções síncronas, o Then-catch é uma maneira eficaz de capturar e e tratar exceções assíncronas. 
Eles permitem que você evite que seu programa seja interrompido abruptamente por um erro, fornecendo a oportunidade de lidar com uma exceção de maneira controlada.

Estas construções são essenciais para que possamos lidar com respostas bem sucedidas como também suas exceções (erros). 
Tendo esta base você conseguirá facilmente optar pelo uso correto para cada situação, garantindo o melhor resultado para o seu código.