🚀 Capítulo 07: O Detetive de Erros

NOTE

Este capítulo utiliza a temática de Brooklyn Nine-Nine para explicar o tratamento de exceções (erros) em Python. Aprenda a investigar e tratar os erros sem deixar o programa quebrar!


🎯 Objetivo da Aula

Compreender como o Python lida com erros usando Exceções, aprendendo a usar os blocos try e except para capturar falhas e manter o programa rodando.

🏢 O Cenário Prático (Seu Desafio)

Na delegacia do seriado Brooklyn Nine-Nine, os detetives estão sempre lidando com imprevistos. Quando o detetive Jake Peralta tenta prender um suspeito e algo dá errado (o suspeito foge ou a pista era falsa), ele não desiste e deixa a delegacia fechar. Ele usa os procedimentos da polícia para contornar a situação!

No Python, quando o seu código tenta fazer algo impossível (como dividir um número por zero ou tentar ler um dicionário usando uma chave que não existe), o sistema gera um alerta vermelho chamado Exceção (Exception).

  • Se você não fizer nada, o programa para de funcionar na hora!
  • Mas se você for um bom detetive, você vai cercar o código perigoso e dizer o que fazer caso o erro aconteça! Seu desafio é prender esses erros!

🧠 Fundamentos: A Teoria Traduzida

🔍 1. O Bloco try (Tentar):

Você coloca aqui dentro o código que você acha que pode dar algum problema.

try:
    # Código perigoso aqui
    resultado = 10 / 0  # Erro!
except Exception as e:
    # Cai aqui se der qualquer erro
    print("Aconteceu um erro:", e)

🕸️ 2. Capturando Erros Específicos:

Você pode dizer exatamente qual tipo de erro quer tratar. O erro de dividir por zero se chama ZeroDivisionError.

try:
    resultado = 10 / 0
except ZeroDivisionError:
    print("Detetive Peralta informa: Não dá para dividir por zero!")

📖 Exemplo Guiado: O Arquivo Perdido

Vamos tentar abrir um arquivo de pistas que não existe. Em vez de deixar o Python travar, vamos dar uma mensagem amigável:

try:
    # Tenta abrir um arquivo que não existe
    with open("pistas_secretas.txt", "r") as arquivo:
        conteudo = arquivo.read()
except FileNotFoundError:
    print("⚠️ Alerta Nine-Nine: O arquivo de pistas sumiu!")
except Exception as e:
    print("Outro erro aconteceu:", e)

🛠️ Prática Obrigatória 1: Estrutura do Try-Except

  1. Escreva a estrutura básica de um bloco try e except em Python que apenas tente executar um código e, se der qualquer erro, imprima "Ops, algo deu errado!".

🛠️ Prática Obrigatória 2: Lançando Erros

  1. Qual é a palavra-chave que usamos em Python para criar e “lançar” uma nova exceção manualmente quando identificamos algo errado no sistema? (Dica: pesquise por raise).

📤 Instruções de Entrega (GitHub Desktop + Microsoft Teams)

Neste curso, você entregará suas atividades enviando o código para o seu repositório no GitHub usando o aplicativo GitHub Desktop. Siga o passo a passo detalhado:

  1. Verifique a estrutura: Certifique-se de que sua estrutura de pastas final está idêntica à mostrada abaixo.
  2. Abra o GitHub Desktop: Certifique-se de que o repositório do seu curso está selecionado no canto superior esquerdo.
  3. Visualize as alterações: Na aba Changes (à esquerda), você verá todos os arquivos que criou ou modificou nesta aula.
  4. Faça o Commit:
    • No campo Summary (na parte inferior esquerda), digite uma mensagem curta descrevendo o que fez, ex: Finaliza atividades do Capítulo.
    • Clique no botão azul Commit to main (ou o nome da sua branch).
  5. Envie para a Nuvem (Push): No topo da tela, clique no botão Push origin. Isso enviará seu código do seu computador para o seu perfil no GitHub.
  6. ⚠️ IMPORTANTE (Repositório Público): Para que o professor consiga corrigir, o seu repositório no GitHub DEVE SER PÚBLICO. Repositórios privados não podem ser visualizados por quem não foi convidado.
  7. Como entregar no Microsoft Teams:
    • Copie o link do seu repositório no GitHub (ex: https://github.com/seu-usuario/seu-repositorio).
    • Abra a tarefa correspondente no Microsoft Teams.
    • Clique no botão Adicionar trabalho (ou Add work).
    • Selecione a opção Link no menu lateral.
    • Cole o link do GitHub no campo “Endereço Web” e digite um texto (ex: Meu Repositório) no campo “Texto a ser exibido”.
    • Clique em Anexar.
    • MUITO IMPORTANTE: Clique no botão Entregar (ou Turn in) no canto superior direito para concluir o envio!

📂 Estrutura de Pastas

spec_backend_com_python_e_fastapi/
├── capitulos/
│   └── capitulo_07_brooklyn.md

💡 Checkpoint de Lógica

O bloco try deve conter apenas o código que realmente pode falhar. Não coloque todo o seu programa lá dentro, pois isso dificulta a descoberta de onde o erro realmente aconteceu!

🔥 Desafio de Fixação (Opcional)

Pesquise o que faz o bloco finally (que pode ser colocado depois do except) e quando ele é executado.

🔑 Gabarito de Código/Fórmulas

Gabarito da Prática 1:

try:
    # código aqui
    pass
except:
    print("Ops, algo deu errado!")

Gabarito da Prática 2:

  1. Usamos a palavra-chave raise seguida do tipo de exceção, exemplo: raise Exception("mensagem").

Capitulo Anterior | Proximo Capitulo