Exercícios: Aula 09 - Tratamento de Erros ⚠️
🟢 Básico
- Entendendo o Result: Explique a diferença entre usar
.unwrap()e tratar um erro commatch. Quando você usaria cada um? - 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
- Leitura Segura: Escreva uma função que tente ler um arquivo e retorne o conteúdo em uma
String. UseResult<String, io::Error>como retorno. - Operador Interrogação: Refaça o exercício anterior usando o operador
?para propagar o erro, em vez de usarmatch.
🔴 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