Maison >développement back-end >tutoriel php >Conseil rapide: comment gérer les rapports d'erreurs en php
Cet article explorera les compétences de la déclaration des erreurs PHP et introduira comment utiliser les outils PHP pour gérer les erreurs de manière contrôlable, ce qui permet de gagner du temps de débogage.
PHP est essentiellement un langage de programmation "Exception légère". Cela signifie que, bien qu'il prenne en charge la gestion des exceptions, le script continue de s'exécuter à moins qu'une erreur fatale ne se produise, quoi qu'il arrive.
Exemple:
<code class="language-php"><?php echo $sitepoint;</code>
Le code ci-dessus renverra le message suivant:
<code>Notice: Undefined variable: sitepoint in PHP shell code on line 1</code>
PHP ne lancera qu'une erreur de notification et continuera à exécuter joyeusement. Les langues "Exception lourde" (comme Python) lancent une erreur et arrêtent l'exécution.
Par conséquent, les développeurs PHP doivent prendre des soins supplémentaires lors de l'écriture de code. Des résultats inattendus peuvent se produire lors de l'exécution du programme car les notifications n'arrêteront pas de s'exécuter, mais peuvent affecter le comportement correct du programme.
Avant d'introduire comment ajuster le style de rapport d'erreur PHP, comprenons d'abord plusieurs niveaux de gravité des erreurs de PHP.
PHP a trois principaux types de messages: l'erreur, la notification et l'avertissement. Ils représentent différents niveaux de gravité: e_error, e_notice et e_warning.
Par défaut, PHP ne enregistre aucune erreur. Pour ce faire, nous devons ouvrir la variable Display_errors dans le fichier de configuration PHP (fichier php.ini) pour l'indiquer explicitement pour démarrer la journalisation.
Dans ce fichier, nous pouvons également dire à PHP si nous voulons enregistrer les notifications et les avertissements, et où ce journal doit être enregistré.
peut également déclencher la connexion dans le code. Pour ce faire, nous pouvons utiliser la fonction error_log (). Étant donné que la journalisation des erreurs n'est pas au centre de cet article, veuillez consulter ici pour plus d'informations.
Nous pouvons utiliser la fonction error_reportting () pour modifier le comportement de rapport d'erreur PHP par défaut. En utilisant cette fonction, nous pouvons définir le niveau d'erreur de la durée du script. Cela se fait en passant une ou plusieurs constantes d'erreur prédéfinies à la fonction.
Par exemple, si nous voulons voir non seulement des erreurs mais aussi des notifications, nous pouvons utiliser:
<code class="language-php"><?php error_reporting(E_ERROR | E_NOTICE);</code>
Avec cette déclaration, l'exécution du script s'arrête non seulement lorsqu'une erreur se produit, mais aussi lorsqu'une notification se produit.
Nous pouvons également utiliser l'opérateur de contrôle d'erreur (@) pour dire à PHP de supprimer les erreurs spécifiques. En plaçant cet opérateur au début d'une expression, toutes les erreurs qui sont le résultat direct de l'expression seront traitées silencieusement:
<code class="language-php"><?php echo @$sitepoint;</code>
Si $ sitepoint existe, cela étend la valeur de $ SitePoint, mais s'il n'existe pas, il renvoie Null et n'imprime rien (plutôt que de lancer une notification).
Soyez très prudent lorsque vous utilisez cet opérateur, car il masquera complètement l'erreur. Non seulement l'erreur ne sera pas affichée, mais elle ne sera pas envoyée au journal d'erreur. Bien que cela semble inoffensif, l'utilisation de cet opérateur masque des problèmes structurels plus profonds dans le code et les masques potentiellement mauvais comportement.
Utiliser PHP comme langue "Exception lourde"
Dans l'exemple suivant, la fonction définie par l'utilisateur ErrorHandler () est définie comme un gestionnaire d'erreurs, en utilisant la fonction set_error_handler (). Lorsqu'une erreur fatale se produit car la fonction file_get_contents () ne peut pas trouver le fichier, il lance une ErrorException:
En utilisant cette méthode, nous pouvons gérer les erreurs d'exécution comme nous le faisons avec des exceptions, les envelopper dans une instruction Try… Catch et fournir des instructions appropriées sur la façon de le faire dans ce cas.
<code class="language-php"><?php echo $sitepoint;</code>
Conclusion
Les questions fréquemment posées sur la gestion des rapports d'erreur dans PHP
Comment activer les rapports d'erreurs en PHP?
Comment gérer gracieusement les erreurs de PHP?
Quelle est la fonction PHP Trigger_error?
La fonction Trigger_error est utilisée pour générer des messages d'erreur au niveau de l'utilisateur. Vous pouvez utiliser cette fonction pour créer des messages d'erreur personnalisés et les déclencher dans votre code.Vous pouvez utiliser la fonction error_log pour enregistrer les erreurs PHP dans un fichier. De plus, vous pouvez configurer PHP pour enregistrer les erreurs dans un fichier spécifique en modifiant la directive Error_log dans la configuration php.ini.
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!