Menu
Coddy logo textTech

O Bloco 'try...catch'

Parte da seção Lógica & Fluxo do Journey de PHP da Coddy — lição 53 de 68.

Quando o seu código PHP encontra problemas que podem causar o seu travamento, você precisa de uma maneira de lidar com essas situações de forma elegante. O bloco try...catch fornece uma abordagem estruturada para lidar com exceções - objetos de erro especiais que representam problemas sérios no seu código.

O bloco try contém código que pode falhar ou lançar uma exceção. Se uma exceção ocorrer dentro deste bloco, o PHP interrompe imediatamente a execução do código restante no bloco try e pula para o bloco catch correspondente. O bloco catch trata a exceção, permitindo que seu script continue rodando em vez de travar.

<?php
try {
    // Código que pode lançar uma exceção
    $result = riskyFunction();
    echo "Success!";
} catch (Exception $e) {
    // Trata a exceção
    echo "An error occurred: " . $e->getMessage();
}
?>

O bloco catch recebe um objeto Exception que contém informações sobre o que deu errado. Você pode acessar a mensagem de erro usando o método getMessage(). Essa abordagem evita que todo o seu script pare quando algo dá errado, dando a você controle sobre como os erros são tratados e o que seus usuários veem.

quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

challenge icon

Desafio

Fácil

Você receberá uma entrada: um número representando um valor de idade. A entrada pode ser um número negativo, o que seria inválido para uma idade.

Leia a entrada, converta-a para um número inteiro e crie um bloco try...catch. Dentro do bloco try, verifique se a idade é negativa. Se for negativa, lance uma nova Exception com a mensagem "Age cannot be negative". Se a idade for válida (zero ou positiva), imprima "Valid age: " seguido pelo valor da idade.

No bloco catch, trate a exceção imprimindo "Error: " seguido pela mensagem da exceção usando o método getMessage().

Formato de entrada: Uma linha contendo um número inteiro (exemplo: 25 ou -5)

Saída esperada:

  • Se a idade for válida: Valid age: seguido pelo valor da idade
  • Se a idade for negativa: Error: Age cannot be negative

Folha de consulta

O bloco try...catch lida com exceções no PHP, evitando que os scripts parem de funcionar quando ocorrem erros.

Sintaxe básica:

<?php
try {
    // Código que pode lançar uma exceção
    $result = riskyFunction();
    echo "Success!";
} catch (Exception $e) {
    // Lida com a exceção
    echo "An error occurred: " . $e->getMessage();
}
?>

O bloco try contém código potencialmente problemático. Se uma exceção ocorrer, o PHP pula para o bloco catch, que recebe um objeto Exception. Use getMessage() para acessar a mensagem de erro.

Você pode lançar exceções manualmente usando:

throw new Exception("Custom error message");

Experimente você mesmo

<?php
// Ler a entrada
$age = intval(fgets(STDIN));

// TODO: Escreva seu código abaixo
// Crie um bloco try...catch para validar a idade


?>
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Lógica & Fluxo