Langage de programmation PHP
Chapitre 1. Introduction
Chapitre 2. Variables, opérateurs et expressions
Chapitre 3. Instructions de contrôle
Chapitre 4. Tableaux
Chapitre 5. Entrées/Sorties
Chapitre 6. Réutilisation de code
Chapitre 7. Lecture/écriture de fichiers
Chapitre 8. Fonctions diverses
Chapitre 9. Sérialisation
Chapitre 10. Fonctions orientées réseau
Chapitre 11. Base de données
Chapitre 12. Manipulations d’images
Chapitre 13. Programmation objet : PHP et les classes ( PHP 4/PHP 5)
Chapitre 14. Gestion des Exceptions (PHP 5)
Chapitre 15. Contrôle de sessions
Chapitre 16. PHP - Ajax
Chapitre 17. Webservices & SOAP
Chapitre 18. PHP en chiffre
Chapitre 19. Conclusion
Chapitre 20. Bibliographie
Page d'accueilTable des matièresNiveau supérieurPage précédenteBas de la pagePage suivante

Chapitre 14. Gestion des Exceptions (PHP 5)

Les programmeurs Java sont familiers avec ce concept. L'idée est d'encapsuler du “code à problème” dans une section. Si ce code se déroule mal, une exception est levée et la procédure associée sera exécutée:

try {
// code à problème
}

catch (identifiant de l'exception) {
// procédure associée
}

Il est possible d'associer plusieurs procédures (plusieurs catch) à un try dans le cas où le code critique peut lever plusieurs exceptions différentes.
Chaque exception étant un objet, un certain nombre de méthodes ont été mise dans la définition de la classe afin de “pister” l'exception :

  • getMessage() : retourne la chaîne de caractère définie dansle constructeur,
  • getCode() : donne le code de l'exception passé au constructeur,
  • getFile() : donne le nom (avec chemin complet) du fichier dans lequel s'est produite l'exception,
  • getLine() : retourne le numéro de la ligne où s'est produite l'exception,
  • getTrace()/getTraceAsString() : permet d'avoir une trace complète, une sorte d'historique de ce qui s'est passé. GetTrace retourne un tableau, getTraceAsString, idem mais sous forme de chaînes de caractères.

try {
...
throw new Exception ('Aïe, y a un problème', 1);
}
catch (Exception $e) {
print “<br>Exception n°: ”.$e->getCode();
print “<br>Message : ”.$e->getMessage();
print “<br>Dans le fichier : ”.$e->getFile();
print “<br>A la ligne : ”.$e->getLine();
}

Afin de définir ses propres exceptions, il est tout à fait possible de se créer une classe héritée d'Exception que l'on lèvera par la suite à l'aide de throw et qu'on récupère à l'aide de catch.
Page d'accueilTable des matièresNiveau supérieurPage précédenteHaut de la pagePage suivante