Si vous êtes un vétéran de PHP, vous savez bien sûr ce qui se passe lorsqu'un script PHP échoue. À ce stade, l'analyseur PHP affichera un message d'erreur à l'écran, tel que Erreur fatale : appel à une fonction non définie à la ligne 19 --, le programme se termine donc ici. Cette information effrayera le client, qui pourra vous appeler immédiatement pour une consultation.
Heureusement, il existe une solution. PHP dispose d'outils intégrés qui permettent aux développeurs de détecter les erreurs de script et de les acheminer vers des gestionnaires d'erreurs personnalisés. À ce stade, le processeur peut être programmé pour afficher des informations plus spécifiques sur l'erreur. (Apprentissage recommandé : Programmation PHP du débutant à compétent)
Les erreurs peuvent également être écrites dans des fichiers ou des bases de données pour prendre des mesures correctives. Il est parfois possible de programmer le processeur pour qu'il ignore les messages d'erreur.
Dans cet article, j'expliquerai comment utiliser l'API de gestion des erreurs de PHP pour créer un gestionnaire d'erreurs défini par l'utilisateur, et j'expliquerai comment afficher et gérer les informations d'erreur de script de manière simple et conviviale.
Types d'erreurs et niveaux de rapport
Commençons par les bases. PHP a trois types d'erreurs les plus élémentaires, du niveau bas au niveau élevé : attention, avertissement et erreur (ou erreur fatale). Normalement, les mises en garde et les avertissements ne mettent pas fin au programme ; mais les erreurs fatales sont des échecs dangereux (par exemple, l'appel d'une fonction non définie ou la référence à un objet inexistant) qui entraîneront l'interruption du programme. Ces erreurs peuvent se produire lors du démarrage, de l'analyse, de la compilation ou de l'exécution.
Des mots clés tels que E_NOTICE, E_ERROR, etc. sont utilisés pour indiquer différents types et niveaux d'erreurs. Une liste détaillée d'entre eux peut être trouvée dans le manuel PHP.
L'affichage des erreurs dans la phase de script est contrôlé par la fonction error_reporting(). Cette fonction définit différents paramètres pour différents niveaux d'erreur. Le tableau A montre un script qui utilise cette fonction pour signaler les avertissements et les erreurs fatales.
Tableau A
<?php // display warnings and errors error_reporting(E_WARNING | E_ERROR); // this will generate a notice, which will never be displayed echo $undefinedVar; // this will generate a fatal error, which will be displayed callUndefFunc(); ?>
En comparant le code du tableau B avec celui ci-dessus, il s'avère que les informations d'erreur et même les informations fatales sont cachées dans le listing B afin que les informations d'erreur ne soient pas être affiché.
Tableau B
<?php // turn off error display // no errors will be displayed error_reporting(0); // this will generate a notice echo $undefinedVar; // this will generate a fatal error callUndefFunc(); ?>
Le code du tableau C affiche tous les messages d'erreur et même des précautions simples :
Tableau C
<?php // all errors will be displayed error_reporting(E_ALL); // this will generate a notice echo $undefinedVar; // this will generate a fatal error callUndefFunc(); ?>
Comme ci-dessus Comme indiqué dans le Trois exemples, la fonction error_reporting() est très importante pour contrôler le contenu affiché à l'écran lorsqu'une erreur survient. Le mot clé ici est affiché, ce qui signifie que l'erreur n'est pas affichée plutôt que qu'elle ne se produit pas. Par conséquent, lorsqu'une erreur fatale se produit (telle qu'un appel de fonction incorrect), le programme est terminé, mais aucun message n'est affiché à l'utilisateur pour le moment ;
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!