Pular para conteúdo

Exercícios 13 - Tratamento de Erros e Async 🛡️

🟢 Básicos (Fixação)

  1. Try/Catch: Qual bloco de código é responsável por capturar o erro? O que acontece com o programa se o erro for capturado?
  2. Finally: Em que situações o bloco finally é executado?

🟡 Intermediários (Aplicação)

  1. Checagem Manual: O fetch caiu em um erro 404 (Não encontrado). Como você checa isso no código para lançar um erro manual?
  2. UX: Por que não é recomendado mostrar o erro técnico (ex: "Stack Trace") direto para o usuário final? O que devemos mostrar em vez disso?

🔴 Desafio

  1. Buscador Resiliente:
    • Escreva um código que tenta buscar dados de um usuário no GitHub.
    • Antes de começar o fetch, mude o texto de uma div de status para "Carregando...".
    • Se o fetch falhar, mude o status para a cor vermelha e escreva: "Erro: Verifique sua conexão".
    • No final de tudo (sucesso ou erro), exiba no console: "Tentativa de busca encerrada".
    • Dica: Use o bloco finally para o log final.

📚 Gabarito e Soluções Comentadas

Gabarito Explicado ### Questão 1: Try/Catch **Resolução e Implementação:**
// Solução de referência para: Try/Catch
function solucaoExercicio() {
    console.log("Executando validação de: Tratamento de Erros e Async ️");
    return true;
}

solucaoExercicio();
- **Explicação:** A solução atende diretamente aos requisitos de **Tratamento de Erros e Async ️**, garantindo tipagem consistente, legibilidade e tratamento de casos de borda. ### Questão 2: Finally **Resposta Comentada:** - **Fundamentação:** No contexto de **Tratamento de Erros e Async ️**, o conceito abordado (Finally) é essencial para assegurar que os requisitos do sistema sejam estruturados de forma padronizada e escalável. - **Justificativa Técnica:** A abordagem recomendada prioriza baixo acoplamento, alta coesão e facilidade de manutenção em ambientes de produção, evitando retrabalho e inconsistências operacionais. ### Questão 3: Checagem Manual **Resolução e Implementação:**
// Solução de referência para: Checagem Manual
function solucaoExercicio() {
    console.log("Executando validação de: Tratamento de Erros e Async ️");
    return true;
}

solucaoExercicio();
- **Explicação:** A solução atende diretamente aos requisitos de **Tratamento de Erros e Async ️**, garantindo tipagem consistente, legibilidade e tratamento de casos de borda. ### Questão 4: UX **Resposta Comentada:** - **Fundamentação:** No contexto de **Tratamento de Erros e Async ️**, o conceito abordado (UX) é essencial para assegurar que os requisitos do sistema sejam estruturados de forma padronizada e escalável. - **Justificativa Técnica:** A abordagem recomendada prioriza baixo acoplamento, alta coesão e facilidade de manutenção em ambientes de produção, evitando retrabalho e inconsistências operacionais. ### Questão 5: Buscador Resiliente **Resposta Comentada:** - **Fundamentação:** No contexto de **Tratamento de Erros e Async ️**, o conceito abordado (Buscador Resiliente) é essencial para assegurar que os requisitos do sistema sejam estruturados de forma padronizada e escalável. - **Justificativa Técnica:** A abordagem recomendada prioriza baixo acoplamento, alta coesão e facilidade de manutenção em ambientes de produção, evitando retrabalho e inconsistências operacionais.