English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutoriel de base PHP

Tutoriel avancé PHP

PHP et MySQL

Manuel de référence PHP

Utilisation et exemples de la fonction set_error_handler() en PHP

Manuel de référence pour les erreurs et les journaux PHP

La fonction set_error_handler() définit un gestionnaire d'erreurs personnalisé.

Syntaxe

mixed set_error_handler (callback $error_handler[, int $error_types]);

Définition et utilisation

Définir une fonction utilisateur (error_handler) pour gérer les erreurs se produisant dans le script.
Cette fonction peut être utilisée pour gérer les erreurs en cours de exécution de manière personnalisée, par exemple, lorsque des erreurs graves se produisent dans l'application, ou lorsqu'une erreur est déclenchée dans des conditions spécifiques (en utilisant trigger_error()), vous devez traiter les données/Nettoyer et recycler les fichiers.
Il est important de se souvenir que les types d'erreurs spécifiés dans error_types contourneront le gestionnaire d'erreurs standard PHP, sauf si la fonction de rappel retourne FALSE. La configuration error_reporting() ne jouera pas son rôle et votre fonction de gestion des erreurs continuera d'être appelée - bien que vous puissiez toujours obtenir la valeur actuelle de error_reporting et traiter en conséquence. Il est particulièrement important de noter que les erreurs précédées de @ error-La valeur de ce qui précède le contrôle opérateur sera 0 lorsque l'erreur se produit.
En même temps, notez que vous avez la responsabilité d'utiliser die() lorsque nécessaire. Si le gestionnaire d'erreurs retourne, le script continuera à exécuter la ligne suivante où l'erreur s'est produite.
Les erreurs de ce niveau ne peuvent pas être traitées par la fonction définie par l'utilisateur : E_ERROR, E_PARSE, E_CORE_ERROR, E_CORE_WARNING, E_COMPILE_ERROR, E_COMPILE_WARNING, et la plupart des E_STRICT générés dans le fichier où la fonction set_error_handler() est appelée.
Si une erreur se produit avant l'exécution du script (par exemple lors du téléchargement de fichiers), le gestionnaire d'erreurs personnalisé ne sera pas appelé car il n'est pas encore enregistré à ce moment-là.

Paramètre

NuméroParamètres et descriptions
1

error_handler (obligatoire)

Il spécifie la fonction à exécuter lors d'une erreur. Voici la syntaxe de error_handler.

2

error_types (optionnel)

Il spécifie à quel niveau de rapport d'erreurs l'erreur définie par l'utilisateur sera affichée. La valeur par défaut est « E_ALL ». Pour les niveaux de rapport d'erreurs possibles, voir « Constantes d'erreurs et journalisation PHP ».

fonction grammaticale de gestion des erreurs

error_function(error_level,error_message, error_file,error_line,error_context);

Voici la description de paramenter-

  • errno  -  Le premier paramètre errno contient le niveau de l'erreur, c'est un entier.

  • errstr  -  Le deuxième paramètre errstr contient les informations d'erreur, c'est une chaîne de caractères.

  • errfile - Le troisième paramètre est optionnel, errfile, contient le nom du fichier où l'erreur s'est produite, c'est une chaîne de caractères.

  • errline - Le quatrième paramètre est optionnel, errline, contient le numéro de ligne où l'erreur s'est produite, c'est un entier.

  • errcontext - Le cinquième paramètre optionnel, errcontext, est un tableau contenant l'environnement des symboles actif au moment de l'erreur. Autrement dit, errcontext contient un tableau de toutes les variables dans le domaine d'application où l'erreur a été déclenchée. Le gestionnaire d'erreurs de l'utilisateur ne doit pas modifier l'environnement d'erreur (contexte d'erreur).

Valeur de retour

 Si un gestionnaire d'erreurs a été défini précédemment, le programme renvoie le nom de la fonction sous forme de chaîne de caractères ; s'il s'agit d'un gestionnaire d'erreurs intégré, il renvoie NULL. Si vous spécifiez une fonction de rappel invalide, il renvoie également NULL. Si le gestionnaire d'erreurs précédent est une méthode de classe, cette fonction renvoie un tableau indexé (indexed array) contenant le nom de la classe et le nom de la méthode.

Exemple en ligne

Voici l'utilisation de la fonction set_error_handler :

<?php
   function customError($errno, $errstr, $errfile, $errline) {
      echo "Erreur personnalisée : [$errno] $errstr\n";
      echo "Erreur sur la ligne $errline dans $errfile\n";
      echo "Ending Script";
      
      die();
   }
   
   //Définir le gestionnaire d'erreurs
   set_error_handler("customError");
   $test = 0;
   
   //Déclencher une erreur
   if ($test >  -1) {
      trigger_error("Un erreur personnalisée a été déclenchée");
   }
?>
Voyons si ça fonctionne‹/›

Résultat de la sortie :

Erreur personnalisée : [1024Un erreur personnalisée a été déclenchée Erreur sur la ligne 16 
in /home/cg/root/1531703/main.php 
Ending Script