1
resposta

[Dúvida] Por que a exceção só estoura em listarVideos() de mostrarVideos.js?

Fiz como de costumo, tratamento de erro na função que faz o fech dos vídeos, mas as instruções do bloco catch não são excetudas, apenas as instruções do catch de listarVideos() de mostrarVideos.js. Por que isso ocorreu? Fiz o seguinte teste: removi as instruções de tratamento de erros de mostrarVideos.js e deixei apenas as instruções de erro na função mostrarVideos() de conectaApi.js e ainda assim as instruções do bloco catch não foram excecutadas? Isso acontece por que a exceção só estoura no último método assíncrono a ser chamado? MostrarVideos() de mostrarVideos.js é o último a ser chamado e também tem a assinatura async function mostrarVideos(){}

1 resposta

Oii Rafael, tudo bem?

Pelo que você descreveu, parece que a exceção está sendo capturada no listarVideos() de mostrarVideos.js e não no conectaApi.js. Vamos analisar o que pode estar acontecendo.

Quando você faz uma chamada assíncrona com fetch em conectaApi.js, o erro pode não ser lançado imediatamente. Em vez disso, o fetch retorna uma Promise que pode ser rejeitada. Se você não tratar essa rejeição dentro da função conectaApi.js, ela será propagada para o próximo nível de chamada assíncrona que, no seu caso, é listarVideos().

Um abraço e bons estudos.