Minha dúvida é: esse "catch" está capturando qual erro para ser tratado? Como eu sei, somente olhando qual erro que o "catch" está tratando?
Minha dúvida é: esse "catch" está capturando qual erro para ser tratado? Como eu sei, somente olhando qual erro que o "catch" está tratando?
Oii, Luidi!
O catch no seu código tá capturando qualquer erro que ocorra dentro do bloco try. No caso específico do seu exemplo, ele está capturando erros que possam ocorrer ao tentar executar livros.find(). Isso pode incluir erros de conexão com o banco de dados ou problemas na consulta.
Pra saber qual erro está sendo tratado, você pode verificar como o erro é manipulado após ser capturado. No seu caso, o erro é passado para a função next(erro), que tá configurada pra ser tratada por um middleware de manipulação de erros.
O middleware manipuladorDeErros que você mostrou tá configurado para tratar diferentes tipos de erros, como mongoose.Error.CastError e mongoose.Error.ValidationError. Ele verifica a instância do erro e envia uma resposta apropriada com base no tipo de erro.