Créer une exception personnalisée
Fait partie de la section Logique & Flux du Journey PHP de Coddy — leçon 56 sur 68.
Alors que la classe Exception intégrée de PHP fonctionne bien pour la gestion générale des erreurs, la création de vos propres classes d'exception personnalisées fournit des messages d'erreur beaucoup plus spécifiques et significatifs. Les exceptions personnalisées vous aident à distinguer différents types de problèmes dans votre code et à les gérer de manière appropriée.
Pour créer une exception personnalisée, vous étendez la classe de base Exception de PHP en utilisant le mot-clé extends. Cet héritage donne à votre exception personnalisée toutes les fonctionnalités de l'exception standard tout en vous permettant d'ajouter votre propre comportement spécifique ou simplement de fournir un nom plus descriptif.
<?php
class InvalidEmailException extends Exception {
// La classe peut être vide - elle hérite de tout ce qui provient d'Exception
}
// Vous pouvez également ajouter des propriétés ou des méthodes personnalisées
class CustomException extends Exception {
public function getCustomMessage() {
return "Custom error: " . $this->getMessage();
}
}
?>La puissance des exceptions personnalisées réside dans leurs noms descriptifs et la capacité à intercepter des types d'exceptions spécifiques. Au lieu d'intercepter une Exception générique, vous pouvez intercepter InvalidEmailException, DatabaseConnectionException, ou toute autre exception personnalisée que vous créez. Cela rend votre gestion des erreurs plus précise et votre code plus facile à maintenir.
Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Défi
FacileVous recevrez une entrée : une chaîne de caractères représentant le nom d'une classe d'exception. Cette entrée sera un mot unique qui devra être utilisé comme nom pour votre classe d'exception personnalisée (exemple : NegativeBalanceException ou InvalidUsernameException).
Lisez l'entrée et créez une classe d'exception personnalisée en utilisant le nom fourni. Votre classe d'exception personnalisée doit étendre la classe de base Exception de PHP. Après avoir créé la classe, affichez "Custom exception created: " suivi du nom de la classe que vous avez reçu en entrée.
Format d'entrée : Une ligne contenant une chaîne de caractères représentant le nom de la classe d'exception (exemple : InvalidAgeException)
Sortie attendue : Custom exception created: suivi du nom de la classe d'exception
Aide-mémoire
Pour créer des exceptions personnalisées en PHP, étendez la classe de base Exception en utilisant le mot-clé extends :
<?php
class InvalidEmailException extends Exception {
// La classe peut être vide - elle hérite de tout de Exception
}
// Vous pouvez également ajouter des propriétés ou des méthodes personnalisées
class CustomException extends Exception {
public function getCustomMessage() {
return "Custom error: " . $this->getMessage();
}
}
?>Les exceptions personnalisées fournissent des messages d'erreur plus spécifiques et significatifs, vous permettant d'intercepter des types d'exceptions spécifiques au lieu d'objets Exception génériques. Cela rend la gestion des erreurs plus précise et le code plus facile à maintenir.
Essayez vous-même
<?php
// Lire le nom de la classe d'exception
$className = trim(fgets(STDIN));
// TODO: Écrivez votre code ci-dessous pour créer la classe d'exception personnalisée
// Afficher le résultat
echo "Custom exception created: " . $className;
?>Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Logique & Flux
1Fonctions avancées
Fonctions anonymesClosures et 'use'Fonctions fléchéesFonctions de rappelUtilisation de 'call_user_func'Fonctions variablesPassage par référenceFonctions récursivesRécapitulatif : Mélange de fonctions4Tableaux multidimensionnels
Créer un tableau 2DAccéder aux éléments d'un tableau 2DModifier les éléments d'un tableau 2DItérer avec des boucles imbriquéesTableaux associatifs 2DRécapitulatif : Exercice de grille simple2Manipulations avancées de tableaux
Ajouter avec 'array_push'Supprimer avec 'array_pop'Ajouter avec 'array_unshift'Supprimer avec 'array_shift'Fusionner des tableaux indexésFusionner des tableaux associatifsExtraire avec 'array_slice'Valeurs avec 'in_array'Clés avec 'array_search'Récapitulatif : Exercice Playlist5Carnet de notes des élèves
Configuration du projet : Structure de donnéesAjouter un nouvel élèveAjouter une note à un élèveCalculer la moyenne d'un élèveTrouver le meilleur élèveGénérer un bulletin de notes8Gestion des erreurs et des exceptions
Comprendre les erreurs PHPLe bloc 'try...catch'Le bloc 'finally'Lancer une exceptionCréer une exception personnaliséeUtiliser une exception personnaliséeRécapitulatif : Validation des entrées3Tri des tableaux
Trier les tableaux indexés par ordre croissantTrier les tableaux indexés par ordre décroissantTrier les tableaux associatifs par valeurTrier les tableaux associatifs par cléTri par ordre naturelTri personnalisé avec 'usort'Récapitulatif : Tri d'un classement