Maison > Article > développement back-end > Gestion des erreurs et exceptions PHP
Cet article présente principalement la gestion des erreurs et des exceptions PHP. Les amis intéressés peuvent s'y référer. J'espère qu'il sera utile à tout le monde.
Dans le processus quotidien de développement de projets, il y aura toujours des erreurs d'exception inattendues. Si nous ne les traitons pas relativement bien, le programme semblera très peu professionnel et il risque d'échouer. informations 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 à ce moment-là, nous ne pouvons regarder le code que depuis le début. dans le projet sont très importants pour nous. C'est effrayant, alors comment pouvons-nous localiser rapidement et précisément les exceptions et les erreurs pendant le processus de développement du projet, et les gérer en conséquence ? Cet article utilise ma propre compréhension des erreurs et de la gestion des exceptions ? partager avec vous Tout le monde apprend les uns des autres et sert de rappel.
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(); Définir le niveau d'erreur de PHP et renvoyer le niveau actuel
error_reporting(report_level)
Si le niveau du paramètre n'est pas spécifié, le niveau d'erreur actuel sera renvoyé. Les éléments suivants sont des valeurs possibles de niveau :
valeur |
constant |
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 |
Erreur fatale générée par l'utilisateur, similaire à un programmeur utilisant la fonction PHP trigger_error() Définir E_ERROR |
||||||||||||||||||
512 |
E_USER_WARNING |
Avertissement non fatal généré par l'utilisateur, cet Semblable à ce que 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()) E_ALL |
||||||||||||||||||
E_STRICT ( | Dans PHP6.0, E_STRICTfera E_ALL | partie de) 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 参数 描述 error_function 必需。规定发生错误时运行的函数。 error_types 可选。规定在哪个错误报告级别会显示用户定义的错误。默认是 "E_ALL"。 Description error_function Obligatoire. Spécifie la fonction à exécuter lorsqu'une erreur se produit. error_types 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 : //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ètres Description message_d'erreur Obligatoire. Spécifie le message d'erreur. La limite de longueur est de 1024 caractères. error_types 可选。规定错误消息的错误类型。 可能的值: E_USER_ERROR E_USER_WARNING E_USER_NOTICE 测试代码如下: 运行结果如下: 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!