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.

  1. Crie o arquivo falha_matrix.py na pasta src/:
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

  1. Abra o arquivo falha_matrix.py.
  2. Clique no botão Run Python File.
  3. Digite 0 e 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)


Capitulo Anterior | Proximo Capitulo