Maison >développement back-end >tutoriel php >méthodes de gestion des erreurs et d'implémentation php
Cet article expliquera comment implémenter la gestion des erreurs PHP.
Comment implémenter la gestion des erreurs, des avertissements et des exceptions en PHP, quelles fonctions sont utilisées pour gérer les erreurs correspondantes
Les invites d'exception php sont divisées en trois catégories erreur/avertissement/avis
Supplément d'erreur :
Erreur fatale : Erreur fatale (script terminé)
E_ERROR // Erreur d'exécution fatale, l'erreur ne peut pas être récupérée, l'exécution du script est suspendue
E_CORE_ERROR // Démarrage PHP Erreur fatale lors de l'initialisation
E_COMPILE_ERROR // Erreur fatale lors de la compilation, tout comme un E_ERROR généré par le moteur de script Zend
E_USER_ERROR // Message d'erreur personnalisé. Comme utiliser la fonction PHP trigger_error (le type d'erreur est défini sur : E_USER_ERROR)
E_RECOVERABLE_ERROR //Erreurs fatales qui peuvent être détectées. Cela indique qu'une erreur potentiellement dangereuse s'est produite, mais n'a pas rendu le moteur PHP instable.
Erreur d'analyse : erreur d'analyse de la syntaxe au moment de la compilation, erreur de syntaxe (le script se termine en cours d'exécution)
E_PARSE // Erreur d'analyse de la syntaxe au moment de la compilation
Supplément d'avertissement : erreur d'avertissement (uniquement étant donné A un message d'invite apparaît et le script ne se termine pas.)
E_WARNING // Avertissement d'exécution (erreur non fatale).
E_CORE_WARNING // Avertissement (erreur non fatale) survenu lors du démarrage de l'initialisation de PHP.
E_COMPILE_WARNING // Avertissement de compilation
E_USER_WARNING // Message d'avertissement généré par l'utilisateur
Supplément de notification d'exception : Erreur de notification (seules les informations de notification sont données, le script ne se termine pas l'opération)
E_NOTICE // Notification d'exécution. Indique que le script rencontre une situation qui peut apparaître comme une erreur
E_USER_NOTICE // Informations de notification générées par l'utilisateur.
Implémentation de la gestion des erreurs php :
register_shutdown_function('funcName') // Le paramètre est le nom de la fonction qui doit capturer les erreurs, mais register_shutdown_function ne peut capturer que les erreurs fatales pendant l'exécution, pas lors de l'interprétation. Erreur d'exécution, car il s'agit d'une fonction exécutée une fois l'exécution du programme terminée (comme les erreurs de syntaxe, les erreurs générées pendant l'exécution ne seront pas détectées)
set_error_handler('funcName') //Paramètres C'est le cas. le nom de la fonction du rappel qui doit être capturé. Il est différent de register_shutdown_function, qui capture les erreurs lors de l'exécution de la fonction
Lorsqu'une erreur est rencontrée lors de l'exécution du fichier cible, le système le fera. rappeler la fonction spécifiée :
Exemple :
register_shutdown_function( "fatal_handler" ); set_error_handler("error_handler"); define('E_FATAL', E_ERROR | E_USER_ERROR | E_CORE_ERROR | E_COMPILE_ERROR | E_RECOVERABLE_ERROR| E_PARSE ); //获取fatal error function fatal_handler() { $error = error_get_last(); if($error && ($error["type"]===($error["type"] & E_FATAL))) { $errno = $error["type"]; // $errfile = $error["file"]; $errline = $error["line"]; $errstr = $error["message"]; error_handler($errno,$errstr,$errfile,$errline); } }
//Obtenir toutes les erreurs
function error_handler($errno,$errstr,$errfile,$errline){ $str=<< "errno":$errno "errstr":$errstr "errfile":$errfile "errline":$errline EOF; //获取到错误可以自己处理,比如记Log、报警等等 echo $str; } //error_get_last() 捕获到的执行错误结果 //error_clear_last() 清除最后一次产生的错误信息
//Les deux ci-dessus peuvent capturer toutes les erreurs, avertissements et exceptions, mais pour des raisons de performances, il n'est pas recommandé d'utiliser leur capture Attention exception
Cet article présente les méthodes de gestion des erreurs Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois.
Recommandations associées :
PHP obtient la valeur spécifiée d'un tableau multidimensionnel dans quelle colonne du tableau ?
Apprentissage de base du php : tableaux et structures de données PHP
Apprentissage de base du php : système de fichiers PHP
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!