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.
Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Desafio
FácilVocê 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
?>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
1Funções Avançadas
Funções AnônimasClosures e 'use'Arrow FunctionsFunções de CallbackUsando 'call_user_func'Funções VariáveisPassagem por ReferênciaFunções RecursivasRecapitulação: Mix de Funções4Arrays Multidimensionais
Criando um Array 2DAcessando Elementos de um Array 2DModificando Elementos de um Array 2DIterando com Loops AninhadosArrays Associativos 2DRecapitulação: Exercício de Grade Simples2Manipulações Avançadas de Arrays
Adicionando com 'array_push'Removendo com 'array_pop'Adicionando com 'array_unshift'Removendo com 'array_shift'Mesclando Arrays IndexadosMesclando Arrays AssociativosExtraindo com 'array_slice'Valores com 'in_array'Chaves com 'array_search'Recapitulação: Exercício de Playlist5Boletim de Alunos
Configuração do Projeto: Estrutura de DadosAdicionando um Novo AlunoAdicionando uma Nota a um AlunoCalculando a Média do AlunoEncontrando o Melhor AlunoGerando um Boletim8Tratamento de Erros e Exceções
Entendendo Erros no PHPO Bloco 'try...catch'O Bloco 'finally'Lançando uma ExceçãoCriando uma Exceção PersonalizadaUsando uma Exceção PersonalizadaRecapitulação: Validação de Entrada3Ordenação de Arrays
Ordenar Arrays Indexados (Crescente)Ordenar Arrays Indexados (Decrescente)Ordenar Arrays Associativos por ValorOrdenar Arrays Associativos por ChaveOrdenação por Ordem NaturalOrdenação Personalizada com 'usort'Recapitulação: Ordenação de Leaderboard