Criando uma Exceção Personalizada
Parte da seção Lógica & Fluxo do Journey de PHP da Coddy — lição 56 de 68.
Embora a classe nativa Exception do PHP funcione bem para o tratamento geral de erros, criar suas próprias classes de exceção personalizadas fornece mensagens de erro muito mais específicas e significativas. Exceções personalizadas ajudam você a distinguir entre diferentes tipos de problemas em seu código e tratá-los adequadamente.
Para criar uma exceção personalizada, você estende a classe base Exception do PHP usando a palavra-chave extends. Essa herança fornece à sua exceção personalizada toda a funcionalidade da exceção padrão, enquanto permite que você adicione seu próprio comportamento específico ou simplesmente forneça um nome mais descritivo.
<?php
class InvalidEmailException extends Exception {
// A classe pode estar vazia - ela herda tudo de Exception
}
// Você também pode adicionar propriedades ou métodos personalizados
class CustomException extends Exception {
public function getCustomMessage() {
return "Custom error: " . $this->getMessage();
}
}
?>O poder das exceções personalizadas reside em seus nomes descritivos e na capacidade de capturar tipos específicos de exceção. Em vez de capturar uma Exception genérica, você pode capturar InvalidEmailException, DatabaseConnectionException ou qualquer outra exceção personalizada que você criar. Isso torna o seu tratamento de erros mais preciso e o seu código mais fácil de manter.
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: uma string representando o nome de uma classe de exceção. Esta entrada será uma única palavra que deve ser usada como o nome para sua classe de exceção personalizada (exemplo: NegativeBalanceException ou InvalidUsernameException).
Leia a entrada e crie uma classe de exceção personalizada usando o nome fornecido. Sua classe de exceção personalizada deve estender a classe base Exception do PHP. Após criar a classe, imprima "Custom exception created: " seguido pelo nome da classe que você recebeu como entrada.
Formato de entrada: Uma linha contendo uma string representando o nome da classe de exceção (exemplo: InvalidAgeException)
Saída esperada: Custom exception created: seguido pelo nome da classe de exceção
Folha de consulta
Para criar exceções personalizadas no PHP, estenda a classe base Exception usando a palavra-chave extends:
<?php
class InvalidEmailException extends Exception {
// A classe pode estar vazia - ela herda tudo de Exception
}
// Você também pode adicionar propriedades ou métodos personalizados
class CustomException extends Exception {
public function getCustomMessage() {
return "Custom error: " . $this->getMessage();
}
}
?>Exceções personalizadas fornecem mensagens de erro mais específicas e significativas, permitindo que você capture tipos de exceção específicos em vez de objetos Exception genéricos. Isso torna o tratamento de erros mais preciso e o código mais fácil de manter.
Experimente você mesmo
<?php
// Lê o nome da classe de exceção
$className = trim(fgets(STDIN));
// TODO: Escreva seu código abaixo para criar a classe de exceção personalizada
// Exibe o resultado
echo "Custom exception created: " . $className;
?>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