Le bloc 'try...catch'
Fait partie de la section Logique & Flux du Journey PHP de Coddy — leçon 53 sur 68.
Lorsque votre code PHP rencontre des problèmes susceptibles de provoquer son arrêt, vous avez besoin d'un moyen de gérer ces situations avec élégance. Le bloc try...catch offre une approche structurée pour traiter les exceptions - des objets d'erreur spéciaux qui représentent des problèmes graves dans votre code.
Le bloc try contient du code qui pourrait échouer ou lever une exception. Si une exception se produit dans ce bloc, PHP arrête immédiatement l'exécution du code restant dans le bloc try et passe au bloc catch correspondant. Le bloc catch gère l'exception, permettant à votre script de continuer à s'exécuter au lieu de planter.
<?php
try {
// Code qui pourrait lever une exception
$result = riskyFunction();
echo "Success!";
} catch (Exception $e) {
// Gérer l'exception
echo "An error occurred: " . $e->getMessage();
}
?>Le bloc catch reçoit un objet Exception qui contient des informations sur ce qui s'est mal passé. Vous pouvez accéder au message d'erreur en utilisant la méthode getMessage(). Cette approche empêche votre script entier de s'arrêter en cas de problème, vous donnant le contrôle sur la façon dont les erreurs sont gérées et sur ce que vos utilisateurs voient.
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 : un nombre représentant une valeur d'âge. L'entrée peut être un nombre négatif, ce qui serait invalide pour un âge.
Lisez l'entrée, convertissez-la en un entier et créez un bloc try...catch. À l'intérieur du bloc try, vérifiez si l'âge est négatif. S'il est négatif, lancez une nouvelle Exception avec le message "Age cannot be negative". Si l'âge est valide (zéro ou positif), affichez "Valid age: " suivi de la valeur de l'âge.
Dans le bloc catch, gérez l'exception en affichant "Error: " suivi du message de l'exception en utilisant la méthode getMessage().
Format d'entrée : Une ligne contenant un entier (exemple : 25 ou -5)
Sortie attendue :
- Si l'âge est valide :
Valid age:suivi de la valeur de l'âge - Si l'âge est négatif :
Error: Age cannot be negative
Aide-mémoire
Le bloc try...catch gère les exceptions en PHP, empêchant les scripts de planter lorsque des erreurs surviennent.
Syntaxe de base :
<?php
try {
// Code qui pourrait lever une exception
$result = riskyFunction();
echo "Success!";
} catch (Exception $e) {
// Gérer l'exception
echo "An error occurred: " . $e->getMessage();
}
?>Le bloc try contient du code potentiellement problématique. Si une exception survient, PHP passe au bloc catch, qui reçoit un objet Exception. Utilisez getMessage() pour accéder au message d'erreur.
Vous pouvez lever manuellement des exceptions en utilisant :
throw new Exception("Custom error message");Essayez vous-même
<?php
// Lire l'entrée
$age = intval(fgets(STDIN));
// TODO : Écrivez votre code ci-dessous
// Créer un bloc try...catch pour valider l'âge
?>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