Olá João, tudo bem?
Isso ocorre porque quando você chama a função pegaArquivo
com um caminho de arquivo válido, ela executa normalmente e imprime o conteúdo do arquivo no console usando console.log(chalk.green(texto))
.
No entanto, quando você chama a mesma função com um caminho de arquivo inválido, o bloco catch
é executado e a função trataErro
é chamada, que por sua vez imprime o erro no console usando console.log(erro)
e lança uma nova exceção usando throw new Error(chalk.red(erro.code, 'não há arquivo no diretório'))
. Isso interrompe a execução da função pegaArquivo
e a função que a chamou, que é o seu programa principal, não recebe nenhum resultado.
Em relação ao texto do finally
que é apresentado antes do erro, essa é a forma correta! O finally
é uma operação que sempre vai ocorrer, com ou sem erro, que representa o fim da compilação do código normal, e na situação padrão, quando dá tudo certo, ele é apresentado no fim. Porém, em caso de erro, ele deve ser apresentado antes, pois a compilação do código já acabou, restando agora o alerta do erro.
Espero ter ajudado. Caso tenha mais dúvidas ou problemas com relação a este tópico, estarei a disposição para ajudá-lo.
Abraços e bons estudos!
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.