Cet article présente principalement les informations pertinentes sur le mécanisme de gestion des erreurs PHP. Il est très détaillé et très pratique. Les amis qui en ont besoin peuvent s'y référer
Dans le processus quotidien de développement de projet, il y en aura toujours. Si nous ne gérons pas relativement bien les erreurs d'exception inattendues, le programme n'aura pas l'air professionnel et pourra devenir une information efficace permettant à d'autres d'attaquer le système ; certaines exceptions d'erreur mettront fin à l'exécution du script. S'il n'y a pas de message d'erreur, nous ne pouvons que regarder. au code dès le début. Il est terrible pour nous de savoir qu'il y a des centaines ou des milliers de lignes de code dans le projet, alors comment développer le projet pendant le processus de développement du projet, et les gérer rapidement ? par conséquent. Cet article est basé sur ma propre compréhension des erreurs et de la Gestion des exceptions, et je le partagerai avec tout le monde pour apprendre et communiquer entre eux, et servir de mémo.
Gestionnaire d'erreurs système :
PHP Dans des circonstances normales, les erreurs seront générées normalement, mais dans certains frameworks, cela peut affecter la sortie d'erreur, peut-être le framework dont il dispose son propre mécanisme de traitement, ou il peut être traité dans le code. Généralement, ces paramètres de fonction sont :
1.error_reporting(); level
error_reporting(report_level)
Si le niveau du paramètre n'est pas spécifié, le niveau de rapport d'erreurs actuel sera renvoyé. Les éléments suivants sont des valeurs possibles de niveau :
Valeur |
Constante |
Description |
1 |
E_ERROR |
Erreur d'exécution FATALE. Cette erreur ne peut pas être recyclée. L'exécution du script a été interrompue. |
2 |
E_WARNING |
Avertissement d'exécution non fatal. L'exécution du script n'est pas interrompue. |
4 |
E_PARSE |
Erreur d'analyse du temps de compilation. L'analyse ne devrait générer que des erreurs |
8 |
E_NOTICE |
Runtime notification. Le script trouvé peut être un bug, mais cela peut généralement se produire lors de l'exécution d'un script |
16 |
E_CORE_ERROR |
Erreur fatale au démarrage de PHP. C'est comme le E_ERROR |
au cœur de PHP | >E_CORE_WARNING |
Avertissement lorsque PHP démarre. C'est comme le E_WARNING |
E_COMPILE_ERROR | Erreur fatale à la compilation. C'est comme passer le moteur de script Zend pour générer E_ERROR |
|
128 |
E_COMPILE_WARNING |
Avertissement non fatal lors de la compilation. C'est comme passer le moteur de script Zend pour générer E_WARNING |
256 |
E_USER_ERROR |
Une erreur fatale générée par l'utilisateur, similaire à un programmeur utilisant la fonction PHP trigger_error () set E_ERROR |
512 |
E_USER_WARNING |
Avertissement non fatal généré par l'utilisateur, ce similaire à quoi les programmeurs utilisent PHP fonction trigger_error pour définir E_WARNING |
1024 |
E_USER_NOTICE |
Notification générée par l'utilisateur, similaire à la façon dont les programmeurs utilisent la fonction PHP trigger_error Définir E_NOTICE |
2048 |
E_STRICT |
Notification d'exécution. PHPSuggérez des modifications à votre code pour faciliter l'interopérabilité et la compatibilité de ce code |
4096 |
E_RECOVERABLE_ERROR |
Erreur fatale capturable, similaire à E_ERROR, mais peut être un gestionnaire de capture défini par l'utilisateur (voir set_error_handler()) |
8191 |
E_ALL |
Toutes les erreurs et avertissements sauf le niveau E_STRICT ( en PHP6.0, E_STRICT fera partie de E_ALL) |
Il convient de noter ici que lorsque $level est 0, la sortie d'erreur est désactivée, c'est-à-dire qu'aucune erreur ne sera générée.
2.set_error_handler()
Définition et utilisation
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.
Syntaxe
set_error_handler(error_function,error_types)
Paramètres
|
Description |
||||||
Obligatoire. Spécifie la fonction à exécuter lorsqu'une erreur se produit. | |||||||
error_types |
rapport d'erreurs les erreurs définies par l'utilisateur seront affichées. La valeur par défaut est "E_ALL". Astuce : Si cette fonction est utilisée, la fonction standard de gestion des erreurs PHP sera complètement contournée. Si nécessaire, le gestionnaire d'erreurs défini par l'utilisateur doit terminer (die()) le script Remarque : Si. dans Une erreur se produit avant l'exécution du script Étant donné que le programme personnalisé n'a pas été enregistré à ce moment-là, le gestionnaire d'erreurs personnalisé ne sera pas utilisé. Le code de test est le suivant : /** * * @param type $error_level 错误级别 * @param type $error_message 错误信息 * @param type $error_file 可选 错误文件 * @param type $error_line 可选 错误行 * @param type $error_context 可选。规定一个数组,包含了当错误发生时在用的每个变量以及它们的值。 */ function my_error($error_level, $error_message, $error_file, $error_line, $error_context) { echo date('Y-m-d H:i:s') . $error_level . $error_message . $error_file . $error_line; var_dump($error_context); } set_error_handler('my_error', E_ALL); print_r($a); Copier après la connexion //D'après le cas ci-dessus, nous pouvons savoir que lors de l'enregistrement de la méthode my_error, le système écrasera automatiquement la gestion des erreurs d'origine error_fuction( ) méthode Déclencheur d'erreur personnalisé Définition et utilisation Fonction trigger_error() Crée des messages d'erreur définis par l'utilisateur. trigger_error() est utilisé pour déclencher un message d'erreur dans des conditions spécifiées par l'utilisateur. Il est utilisé avec le gestionnaire d'erreurs intégré ou avec des fonctions définies par l'utilisateur créées avec la fonction set_error_handler(). Si un type d'erreur illégal est spécifié, cette fonction renvoie false, sinon elle renvoie true. Syntaxe trigger_error(error_message,error_types)
测试代码如下: /** * * @param type $level * @param type $msg */ function my_error($level, $msg) { switch ($level) { case E_USER_ERROR: echo "ERROR:<br/>"; break; case E_USER_WARNING: echo "WARNING:<br/>"; break; case E_USER_NOTICE: echo "NOTICE:<br/>"; break; default: break; } echo "错误编号:" . $level . " <br/>"; echo "错误信息:" . $msg; } //注册错误处理器 set_error_handler('my_error'); if (89 > 8) { //调用错误触发器 trigger_error('这是错误啊', E_USER_WARNING); } Copier après la connexion 运行结果如下: WARNING: |
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!