5.11. Criando um servidor básico com NodeJS: Tratamento de erros e exceções

Página 42

Ao criar um servidor básico com NodeJS, o tratamento de erros e exceções é uma parte essencial para garantir que o seu aplicativo funcione corretamente e seja capaz de lidar com situações inesperadas. Neste capítulo, vamos explorar como você pode implementar o tratamento de erros e exceções em seu servidor NodeJS.

Entendendo Erros e Exceções

Antes de mergulharmos na implementação, é importante entender o que são erros e exceções. Em termos simples, um erro é um problema que impede que o programa funcione corretamente. Uma exceção, por outro lado, é um evento inesperado que ocorre durante a execução de um programa.

No contexto de um servidor NodeJS, os erros podem ocorrer por várias razões, como um recurso não disponível, uma operação de banco de dados falhada, ou um erro de sintaxe no código. As exceções são eventos inesperados que podem ocorrer durante a execução do servidor, como uma tentativa de acessar uma variável que não foi definida.

Tratamento de Erros em NodeJS

O tratamento de erros em NodeJS é geralmente feito usando a instrução 'try-catch'. A instrução 'try' permite que você teste um bloco de código para erros. O bloco de código dentro do 'try' é executado e se ocorrer um erro, a execução é passada para o bloco 'catch'.

try {
  // código que pode lançar um erro
}
catch (erro) {
  // código para lidar com o erro
}

Por exemplo, se estivermos lendo um arquivo que não existe, o NodeJS lançará um erro. Podemos capturar esse erro usando a instrução 'try-catch'.

const fs = require('fs');

try {
  const data = fs.readFileSync('/path/to/nonexistent/file');
  console.log(data);
}
catch (erro) {
  console.log('Ocorreu um erro:', erro);
}

Tratamento de Exceções em NodeJS

O NodeJS tem um mecanismo embutido para lidar com exceções não capturadas. Quando uma exceção não é capturada por um bloco 'try-catch', ela é tratada como uma 'exceção não capturada'. O NodeJS emite um evento 'uncaughtException' quando ocorre uma exceção não capturada.

Podemos ouvir esse evento e lidar com a exceção da seguinte maneira:

process.on('uncaughtException', (erro) => {
  console.error('Exceção não capturada:', erro);
  process.exit(1); // encerra o processo com um código de status '1', que indica uma falha
});

Tratamento de Erros em APIs NodeJS

Em uma API NodeJS, você normalmente quer enviar uma resposta ao cliente quando ocorre um erro. Você pode fazer isso usando o objeto 'res' (response) que é passado para o manipulador de rota.

Por exemplo, se estivermos criando uma API para buscar dados de um banco de dados e ocorrer um erro durante a operação de banco de dados, podemos enviar uma resposta com um código de status 500 (Internal Server Error) e uma mensagem de erro.

app.get('/data', (req, res) => {
  db.fetchData((erro, data) => {
    if (erro) {
      res.status(500).json({ erro: 'Ocorreu um erro ao buscar os dados.' });
      return;
    }

    res.json(data);
  });
});

Conclusão

O tratamento de erros e exceções é uma parte crucial da criação de um servidor NodeJS. Ele permite que seu aplicativo lide com situações inesperadas e forneça respostas úteis ao cliente quando ocorrem erros. Ao entender como o NodeJS lida com erros e exceções, você pode criar servidores mais robustos e confiáveis.

Now answer the exercise about the content:

Qual é a diferença entre erros e exceções no contexto de um servidor NodeJS e como eles são tratados?

You are right! Congratulations, now go to the next page

You missed! Try again.

Next page of the Free Ebook:

435.12. Criando um servidor básico com NodeJS: Testando e documentando a API

Earn your Certificate for this Course for Free! by downloading the Cursa app and reading the ebook there. Available on Google Play or App Store!

Get it on Google Play Get it on App Store

+ 6.5 million
students

Free and Valid
Certificate with QR Code

48 thousand free
exercises

4.8/5 rating in
app stores

Free courses in
video, audio and text