Gestion des erreurs PHP

| | | | | | | | | | | | | | | | | | |
Méthodes de gestion des erreurs PHP :
  • Utilisation de la méthode die()
  • Gestion des erreurs personnalisée
Gestion des erreurs de base : utilisation la fonction die() La fonctiondie() affiche un message et quitte le script en cours.Syntaxe :
die ($message)
Exemple :< /b>< ? php
// Code PHP montrant la gestion des erreurs par défaut$file = fopen ( "engineer.txt" , "w" ); ?>
Remarque.Exécutez le code ci-dessus et le fichier engineer.txt est manquant , puis une erreur d`exécution s`affichera.
Erreur d`exécution :
Avertissement PHP : fopen (engineer.txt) : échec de l`ouverture du flux : autorisation refusée dans /home/dac923dff0a2558b37ba742613273073.php à la ligne 2
Pour éviter cette erreur, utilisez la fonction die(). La fonction die() est implémentée ci-dessous :Exemple :
// code PHP pour vérifier les erreurs
// s`il n`y a pas de fichier
// puis quitter le scriptif (! file_exists ( "engineer.txt" )) {/code> die ( " Le fichier n`est pas présent " ); }
// si le fichier est présent
// puis continuerelse { $file = fopen ( " ingénieur.txt " , " w " ); }
?>
Remarque.Si le fichier est ingénieur .txt est manquant, il affichera la sortie.
Quitter
Le fichier n`est pas présent
Gestionnaires d`erreurs personnalisés :Création d`un gestionnaire d`erreurs en PHP est très simple. Créez une fonction qui peut être appelée lorsqu`une erreur se produit en PHP.Syntaxe :
error_function ($error_level, $error_message, $error_file, $error_line, $error_context)
Paramètres :Cette fonction prend cinq paramètres comme ci-dessus et décrits ci-dessous :
  • $error_level : Il s`agit d`un paramètre obligatoire qui doit être un entier. Il existe des niveaux d`erreur prédéfinis.
  • $error_message :Ceci est un paramètre obligatoire et c`est le message que l`utilisateur veut imprimer.
  • $ error_file : est un paramètre facultatif utilisé pour spécifier le fichier où l`erreur s`est produite.
  • $error_line :est un paramètre facultatif utilisé pour spécifier le numéro de ligne où l`erreur eu lieu.
  • $error_context :il s`agit d`un paramètre facultatif qui est utilisé pour spécifier un tableau contenant chaque variable et leur valeur lorsqu`une erreur se produit.
error_level :il s`agit des niveaux d`erreur possibles, répertoriés ci-dessous :
  • 1 : .E_ERROR : l`erreur d`exécution fatale a été arrêtée
  • 2 : E_WARNING : non- erreur d`exécution fatale, exécution du script arrêtée
  • 4 : E_PARSE : erreur de compilation générée par l`analyseur
  • 8 : E_NOT ICE : le script a rencontré quelque chose qui pourrait être une erreur
  • 16 : E_CORE_ERROR : erreurs fatales survenues lors de l`exécution initiale du script
  • 32 : E_CORE_WARNING : erreurs non fatales survenues lors de l`exécution initiale du script
  • 8191 : E_ALL : toutes les erreurs et avertissements
Fonction set_error_handler() :Après avoir créé la fonction myerror(), vous devez installer un gestionnaire d`erreurs personnalisé car PHP le gère normalement, mais si l`utilisateur fait une gestion d`erreur personnalisée, alors l`utilisateur doit le définir au lieu d`un argument et transmettez la fonction myerror sous forme de chaîne.Exemple :< ? php
// Créer ma fonction d`erreur qui imprime le message
// userfunction mon erreur ( $error_no , $error_msg ) { echo "Erreur : [$error_no] $error_msg" ; echo "Maintenant, le script va se terminer" ; // Si une erreur se produit, le script doit être arrêté mourir (); }
// Réglage set_error_handlerset_error_handler ( "monerreur" ); $a = 10 ; $b = 0 ;
// Ceci générer une erreurecho ( $a / $b ) ;; ?>
Sortie :
Erreur : [2] Division b y zéro Maintenant, le script se terminera
Sortie :essayez toujours de gérer les erreurs en utilisant la gestion des erreurs personnalisée, car il affichera un message plus spécifique en fonction de l`utilisateur, ce qui peut être utile à l`utilisateur. Si l`erreur n`est pas gérée avec la gestion personnalisée des erreurs, alors une erreur se produit, puis le script sera arrêté par défaut, mais s`il gère l`erreur avec la gestion personnalisée des erreurs, il peut continuer le script après avoir affiché le message d`erreur.