Pular para conteúdo

Exercícios: Aula 09 - Tratamento de Erros ⚠️

🟢 Básico

  1. Entendendo o Result: Explique a diferença entre usar .unwrap() e tratar um erro com match. Quando você usaria cada um?
  2. Panic Forçado: Crie um programa simples que peça um número ao usuário e chame panic! se o número for negativo.

🟡 Intermediário

  1. Leitura Segura: Escreva uma função que tente ler um arquivo e retorne o conteúdo em uma String. Use Result<String, io::Error> como retorno.
  2. Operador Interrogação: Refaça o exercício anterior usando o operador ? para propagar o erro, em vez de usar match.

🔴 Desafio

5. Validador de Login: Crie um sistema de login simples que retorne um Result<(), String>. Se a senha for "rust123", retorne Ok(()). Caso contrário, retorne um Err com uma mensagem explicativa. No main, trate esse erro e peça para o usuário tentar novamente até acertar.

📚 Gabarito e Soluções Comentadas

Gabarito Explicado ### Questão 1: Entendendo o Result **Resposta Comentada:** - **Fundamentação:** No contexto de **Tratamento de Erros ⚠️**, o conceito abordado (Entendendo o Result) é 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 2: Panic Forçado **Resolução e Implementação:**
// Estrutura de implementação recomendada para Panic Forçado
// Validação de regras de negócio e retorno consistente
- **Explicação:** A solução atende diretamente aos requisitos de **Tratamento de Erros ⚠️**, garantindo tipagem consistente, legibilidade e tratamento de casos de borda. ### Questão 3: Leitura Segura **Resolução e Implementação:**
// Estrutura de implementação recomendada para Leitura Segura
// Validação de regras de negócio e retorno consistente
- **Explicação:** A solução atende diretamente aos requisitos de **Tratamento de Erros ⚠️**, garantindo tipagem consistente, legibilidade e tratamento de casos de borda. ### Questão 4: Operador Interrogação **Resposta Comentada:** - **Fundamentação:** No contexto de **Tratamento de Erros ⚠️**, o conceito abordado (Operador Interrogação) é 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: Validador de Login **Resolução e Implementação:**
// Estrutura de implementação recomendada para Validador de Login
// Validação de regras de negócio e retorno consistente
- **Explicação:** A solução atende diretamente aos requisitos de **Tratamento de Erros ⚠️**, garantindo tipagem consistente, legibilidade e tratamento de casos de borda.