Gestion des erreurs d'analyse et fatales à l'aide d'un gestionnaire d'erreurs personnalisé
Bien qu'il soit généralement supposé que les gestionnaires d'erreurs personnalisés ne peuvent pas gérer les erreurs d'analyse et fatales, ce n'est pas tout à fait exact. En utilisant une approche différente, nous pouvons en effet piéger et gérer ces erreurs à l'aide d'un gestionnaire d'erreurs personnalisé.
Utiliser une fonction d'arrêt
La clé pour gérer les erreurs d'analyse et fatales consiste à utiliser une fonction d'arrêt enregistrée avec register_shutdown_function(). Cette fonction sera invoquée à la fin du script, nous permettant d'intercepter toutes les erreurs non détectées.
Pré-gestionnaire d'erreurs (prepend.php)
Pour garantir que le gestionnaire d'erreurs est accessible à tous les scripts PHP, pensez à ajouter un fichier comme prepend.php comme suit :
set_error_handler("errorHandler"); register_shutdown_function("shutdownHandler");
Gestionnaire d'erreurs (errorHandler)
Cette fonction gérera les erreurs en fonction de leur niveau et les enregistrera de manière appropriée :
function errorHandler($error_level, $error_message, $error_file, $error_line, $error_context) { // Handle errors according to $error_level and log them using mylog() }
Gestionnaire d'arrêt (shutdownHandler)
Sur fin du script, cette fonction gérera toutes les erreurs non détectées restantes :
function shutdownHandler() { $lasterror = error_get_last(); // Handle last error based on its type and log it using mylog() }
Fonction de journalisation (mylog)
Cette fonction est utilisée pour enregistrer les erreurs à l'emplacement souhaité, comme une base de données ou un fichier.
Mise en œuvre
En configurant cette personnalisation mécanisme de gestion des erreurs, nous pouvons désormais gérer tous les niveaux d’erreur, y compris les erreurs d’analyse et les erreurs fatales. La gestion des erreurs sera cohérente dans tous les scripts qui contiennent le fichier prepend.php.
Considérations
Configuration PHP.ini
Pour ajouter automatiquement prepend.php à tous les scripts PHP, ajoutez la ligne suivante à php.ini :
auto_prepend_file = "/homepages/45/d301354504/htdocs/hmsee/cgi-bin/errorhandling.php"
Cette approche fournit une solution complète pour gérer les erreurs d'analyse et les erreurs fatales à l'aide d'un gestionnaire d'erreurs personnalisé.
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!