Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Switch - case no manipulador de erros

Boa tarde, ainda não terminei o curso e não sei se mais a frente vai ter algum refactoring dos códigos nesse sentido, então gostaria de saber se tem algum problema implementar o código usando o formato do exemplo abaixo:

switch (erro) {
    case erro instanceof mongoose.Error.CastError:
      res.status(400).send({ message: "Um ou mais dados informados estão incorretos" });
      break;
    default:
      res.status(500).send({ message:  "Erro interno do servidor"});
      break;
  }

Em questões de performance e boas práticas, teria algum problema? ou é melhor usar if/else mesmo? Eu tento sempre evitar muito if/else para não adquirir o hábito de usar sempre ifs pra tudo

1 resposta
solução!

Olá Leandro, tudo bem?

Sua pergunta é muito interessante! Em relação ao uso de switch-case no manipulador de erros, não há problemas em utilizá-lo. Na verdade, o switch-case pode ser uma alternativa mais limpa e organizada do que o if/else, especialmente quando temos muitas condições a serem verificadas.

Além disso, o switch-case é uma estrutura de controle de fluxo que pode ser muito útil em muitas situações, inclusive no tratamento de erros.

No seu exemplo, você está utilizando o instanceof para verificar se o erro é uma instância da classe mongoose.Error.CastError. Isso é uma boa prática, pois garante que estamos tratando apenas o tipo de erro que esperamos.

Em relação à performance, não há diferenças significativas entre o uso de switch-case e if/else. A escolha entre uma estrutura ou outra deve ser feita com base na legibilidade e organização do código. Espero ter ajudado e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!