🚀 Capítulo 07: O Detetive de Erros (Tema: Brooklyn Nine-Nine)

NOTE

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


1. 🎯 Objetivo da Aula

Compreender como o PHP lida com erros usando Exceções, aprendendo a usar os blocos try e catch para capturar falhas e manter o site funcionando.

2. 🏢 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 PHP, quando o seu código tenta fazer algo impossível (como dividir um número por zero ou abrir um arquivo que não existe), o sistema gera um alerta vermelho chamado Exceção (Exception).

  • Se você não fizer nada, o site exibe uma tela feia de erro para o usuário e para de funcionar.
  • 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!
} catch (Exception $e) {
    // Tratamento aqui
}

🕸️ 2. O Bloco catch (Capturar):

Se o erro acontecer dentro do try, o PHP pula direto para cá! Aqui você captura o erro (guarda ele em uma variável $e) e decide o que fazer.

try {
    // Código perigoso
} catch (Exception $e) {
    echo "Detetive Peralta informa: Aconteceu um erro! Mensagem: " . $e->getMessage();
}

4. 📖 Exemplo Guiado: O Arquivo Perdido

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

<?php
try {
    if (!file_exists("pistas_secretas.txt")) {
        // Nós mesmos podemos criar (lançar) um erro!
        throw new Exception("O arquivo de pistas sumiu!");
    }
} catch (Exception $e) {
    echo "⚠️ Alerta Nine-Nine: " . $e->getMessage();
}
?>

5. 🛠️ Prática Obrigatória 1: Estrutura do Try-Catch

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

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

  1. Qual é a palavra-chave que usamos em PHP (como visto no exemplo guiado) para criar e “lançar” uma nova exceção manualmente quando identificamos algo errado no sistema?

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

  1. Faça o Commit: No GitHub Desktop, digite a mensagem (ex: Finaliza Capítulo 07 PHP_Brooklyn) e clique em Commit to main.
  2. Envie para a Nuvem (Push): Clique em Push origin.

8. 📂 Estrutura de Pastas

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

💡 Checkpoint de Lógica

O método $e->getMessage() serve para pegar apenas o texto do erro que aconteceu, sem mostrar aquelas linhas estranhas de código que assustam o usuário comum!

10. 🔥 Desafio de Fixação

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

🔑 Gabarito de Código/Fórmulas

Gabarito da Prática 1:

try {
    // código aqui
} catch (Exception $e) {
    echo "Ops, algo deu errado!";
}

Gabarito da Prática 2:

  1. Usamos a palavra-chave throw seguida de new Exception("mensagem").

Capitulo Anterior | Proximo Capitulo