1
resposta

Por que foi necessário ter o IF "jogando"/"criando" o erro para a função criarVideo() e não foi para listaVideo()?

No tratamento de erro da função listaVideo() não foi necessário fazer o IF para "jogar"/"criar" o erro e no tratamento de erro da função criarVideo() foi necessário ter o IF "jogando"/"criando" o erro para que "catch" conseguir pegar?

Ambos os erros são na URL, onde foi colocado o caminho erro, mas na listaVideo() o erro foi identificado sem precisar do IF, mas o mesmo não aconteceu com o criarVideo().

Desde já agradeço a atenção.

1 resposta

Olá Diógenes, tudo bem?

Na função listaVideo(), o erro foi identificado sem a necessidade do IF porque a função fetch() já retorna uma Promise rejeitada caso a requisição falhe, então o catch() consegue capturar essa exceção e tratá-la adequadamente.

Já na função criarVideo(), o IF é necessário porque a requisição é feita utilizando o método XMLHttpRequest, que não retorna uma Promise. Dessa forma, é preciso verificar manualmente se a requisição foi bem sucedida ou não e, caso tenha falhado, "jogar" o erro para que o catch() possa capturá-lo.

Espero ter ajudado a esclarecer a sua dúvida! Se tiver mais alguma pergunta, é só perguntar.

Bons estudos!