La fonction set_error_handler() définit une fonction de gestion des erreurs définie par l'utilisateur.
Cette fonction est utilisée pour créer la propre méthode de gestion des erreurs de l'utilisateur pendant l'exécution.
Cette fonction renvoie l'ancien gestionnaire d'erreurs ou NULL en cas d'échec.
set_error_handler (fonction_erreur, types d'erreur)
paramètre | décrire |
---|---|
fonction_erreur | Requis. Spécifie la fonction à exécuter lorsqu'une erreur se produit. |
types_d'erreurs | Facultatif. Spécifie à quel niveau de rapport d'erreurs les erreurs définies par l'utilisateur sont affichées. La valeur par défaut est "E_ALL". Les niveaux de rapport d'erreurs possibles sont détaillés dans le tableau ci-dessous. |
fonction_erreur (niveau_erreur, message_erreur, fichier_erreur, ligne_erreur, contexte_erreur)
paramètre | décrire |
---|---|
niveau_erreur | Requis. Spécifie le niveau de rapport d'erreurs pour les erreurs définies par l'utilisateur. Doit être un nombre de valeur. Les niveaux de rapport d'erreurs possibles sont détaillés dans le tableau ci-dessous. |
message_erreur | Requis. Spécifie le message d'erreur pour les erreurs définies par l'utilisateur. |
fichier_erreur | Facultatif. Spécifie le nom du fichier dans lequel l'erreur s'est produite. |
ligne_erreur | Facultatif. Spécifie le numéro de ligne où l'erreur s'est produite. |
contexte_erreur | Facultatif. Spécifie un tableau pointant vers la table de symboles active où l'erreur s'est produite. En d'autres termes, error_context contiendra un tableau décrivant la portée existentielle dans laquelle chaque variable génère une erreur. |
valeur | constante | décrire |
---|---|---|
2 | E_AVERTISSEMENT | Erreur d'exécution non fatale. L'exécution du script n'est pas arrêtée. |
8 | E_AVIS | Notifications d'exécution. La découverte de scripts peut être un bug, mais peut également se produire lors de l'exécution normale d'un script. |
256 | E_USER_ERROR | Erreur fatale générée par l'utilisateur. C'est comme le E_ERROR généré par le programmeur à l'aide de la fonction PHP trigger_error(). |
512 | E_USER_WARNING | Erreur non fatale générée par l'utilisateur. C'est comme un E_WARNING généré par le programmeur à l'aide de la fonction PHP trigger_error(). |
1024 | E_USER_NOTICE | Notifications générées par l'utilisateur. C'est comme le E_NOTICE généré par le programmeur à l'aide de la fonction PHP trigger_error(). |
4096 | E_RECOVERABLE_ERROR | Erreurs fatales détectables. C'est comme un E_ERROR qui peut être intercepté par un handle défini par l'utilisateur (voir set_error_handler()). |
8191 | E_TOUS | Tous les niveaux d'erreur et d'avertissement sauf E_STRICT (depuis PHP 6.0, E_STRICT fera partie de E_ALL). |
Astuce : Si cette fonction est utilisée, les fonctions standard de gestion des erreurs PHP seront complètement contournées. Si nécessaire, le gestionnaire d'erreurs défini par l'utilisateur doit terminer le script (die()). Remarque : Si une erreur se produit avant l'exécution du script, le gestionnaire d'erreurs personnalisé ne sera pas utilisé car le programme personnalisé n'a pas été enregistré à ce moment-là.
<?php//fonction de gestionnaire d'erreurs function customError($errno, $errstr, $errfile, $errline) { echo "<b>Erreur personnalisée :</b> [$errno] $errstr<br />"; Erreur sur la ligne $errline dans $errfile<br />"; echo "Ending Script"; die(); }//set error handlerset_error_handler("customError");$test=2;//trigger errorif ($test>1) { trigger_error("Une erreur personnalisée a été déclenchée" }?>
Le résultat du code ci-dessus ressemble à ceci :
Erreur personnalisée : [1024] Une erreur personnalisée a été déclenchée. Erreur à la ligne 19 dans C:webfoldertest.phpEnding Script.