Capítulo 13: Tratamento de Exceções 🕶️💊
Neste capítulo, vamos aprender a lidar com erros no nosso código usando os blocos try e except, com o tema Matrix!
📖 O que são Exceções?
Exceções são erros que acontecem durante a execução do programa (tempo de execução). Se não forem tratados, o programa para de funcionar. Tratar exceções é como prever uma “falha na Matrix” e agir antes que o sistema caia.
Veja o fluxo de funcionamento do try/except:
graph TD A[Início do Try] --> B{Ocorreu um Erro?} B -->|Não| C[Executa todo o Try] B -->|Sim| D[Desvia para o Except] C --> E[Executa o Finally] D --> E E --> F[Fim]
📖 Exemplo Guiado: Falha na Matrix (Divisão por Zero)
Vamos criar um programa que tenta dividir a quantidade de pílulas pelo número de pessoas, e tratar o erro caso o número de pessoas seja zero.
- Crie o arquivo
falha_matrix.pyna pastasrc/:
pilulas = 10
try:
pessoas = int(input("Quantas pessoas vão receber as pílulas? "))
resultado = pilulas / pessoas
print(f"Cada pessoa recebeu {resultado} pílulas.")
except ZeroDivisionError:
print("🚨 ERRO: Não é possível dividir pílulas por zero pessoas! Falha na Matrix.")
except ValueError:
print("🚨 ERRO: Você precisa digitar um número inteiro válido!")
finally:
print("O Oráculo previu que este bloco sempre seria executado.")🕹️ Como Executar e Testar no VS Code
- Abra o arquivo
falha_matrix.py. - Clique no botão Run Python File.
- Digite
0e veja a mensagem de erro personalizada.
Resultado Esperado:
Quantas pessoas vão receber as pílulas? 0
🚨 ERRO: Não é possível dividir pílulas por zero pessoas! Falha na Matrix.
O Oráculo previu que este bloco sempre seria executado.🛠️ Prática Obrigatória 1: Escolha da Pílula
Crie um programa chamado escolha_pilula.py que peça ao usuário para escolher entre a pílula ‘vermelha’ ou ‘azul’. Se ele digitar qualquer outra coisa, use uma exceção personalizada ou um tratamento genérico para avisar que a escolha foi inválida e forçar o programa a continuar rodando.
🛠️ Prática Obrigatória 2: Hacker da Matrix
Crie um programa chamado hacker.py que tente converter uma entrada de texto do usuário em um número inteiro (ex: idade). Trate o erro caso ele digite letras.
🔑 Gabarito de Código
Prática 1: escolha_pilula.py
escolha = input("Escolha a pílula (vermelha/azul): ").lower()
try:
if escolha != "vermelha" and escolha != "azul":
raise ValueError("Escolha inválida!")
print(f"Você escolheu a pílula {escolha}. O mundo mudou.")
except ValueError as e:
print("🚨 Alerta de segurança:", e)Prática 2: hacker.py
try:
idade = int(input("Digite sua idade para entrar na Matrix: "))
print(f"Acesso concedido. Idade {idade} aceita.")
except ValueError:
print("🚨 ERRO: Sentinela detectou entrada inválida! Digite apenas números.")📤 Instruções de Entrega (GitHub Desktop + Microsoft Teams)
(Siga o mesmo padrão do Capítulo 01)