Maison > Article > développement back-end > Explication détaillée de la gestion des exceptions et des erreurs dans php7
Tout d'abord, je déclare que la version PHP de l'auteur est 7.2
Recommandé (gratuit) : PHP7
Aperçu des exceptions et des erreurs
L'exception fait référence à une situation qui ne répond pas aux attentes et qui est différente du processus normal pendant le fonctionnement du programme.
Par exemple, si vous vous connectez à la base de données et que tous les paramètres sont écrits, mais que le lien ne peut pas monter, ce n'est pas comme prévu
Il peut être capturé par try-catch
est un problème qui appartient au programme PHP lui-même. Il est généralement causé par une syntaxe illégale et des problèmes environnementaux, ce qui empêche le compilateur de passer le contrôle ou même de s'exécuter.
Les réchauffements et les avis que vous rencontrez habituellement sont tous des erreurs, mais ils sont de différents niveaux.
Par exemple :
Sauf ces situations, le reste sont des exceptions
Dans le php5 précédent. Lancez l'erreur dans try-catch
try{ …… }catch(Throwable $e){ …… }
Niveaux d'erreur
Les erreurs en php ont aussi des niveaux >Parse error
> Fatal Error
> Waning
>Notice
Deprecated
Deprecated 最低级别的错误(不推荐,不建议) 使用一些过期函数的时候会出现,程序继续执行 Notice 通知级别的错误 使用一些未定义变量、常量或者数组key没有加引号的时候会出现,程序继续执行 E_NOTICE // 运行时通知。表示脚本遇到可能会表现为错误的情况. E_USER_NOTICE // 用户产生的通知信息。Waning 警告级别的错误 程序出问题了,需要修改代码!!!程序继续执行 E_WARNING // 运行时警告 (非致命错误)。 E_CORE_WARNING // PHP初始化启动过程中发生的警告 (非致命错误) 。 E_COMPILE_WARNING // 编译警告 E_USER_WARNING // 用户产生的警告信息Fatal Error 错误级别的错误 程序直接报错,需要修改代码!!!中断程序执行,可使用register_shutdown_function()函数在程序终止前触发一个函数 E_ERROR // 致命的运行错误,错误无法恢复,暂停执行脚本 E_CORE_ERROR // PHP启动时初始化过程中的致命错误 E_COMPILE_ERROR // 编译时致命性错,就像由Zend脚本引擎生成了一个E_ERROR E_USER_ERROR // 自定义错误消息。像用PHP函数trigger_error(错误类型设置为:E_USER_ERROR)Parse error 语法解析错误 语法检查阶段报错,需要修改代码!!!中断程序执行,除了修改ini文件,将错误信息写到日志中,什么也做不了 E_PARSE //编译时的语法解析错误
Gestionnaire d'erreurs personnalisé
Parfois, le gestionnaire d'erreurs fourni avec PHP ne peut pas répondre pleinement à nos besoins. La plupart du temps, nous devons tous remplacer manuellement la gestion des exceptions. php nous fournit trois fonctions pour nous aider à le gérer, à savoir la fonctionset_error_handler()
set_exception_handler()
register_shutdown_function()
error_get_last()
举例 register_shutdown_function('shutdown');function shutdown(){ if ($error = error_get_last()) { var_dump($error); } }$name //没写 ; 号
Emmmmm N'est-ce pas un non-sens ? Il n'est clairement pas exécuté ? Parse error: syntax error, unexpected ';' in /app/swoole/errorDemo.php on line 34
En fait, la raison est qu'avant que le programme ne soit exécuté, notre PHP va d'abord vérifier les problèmes de syntaxe de notre programme. S'il n'y a pas de problèmes, nous pouvons exécuter notre programme.
Notre code ci-dessus n'a pas réussi notre vérification de syntaxe, une erreur a donc été signalée directement.
Alors quel est le problème ? Quand nous sommes dans le framework, pourquoi les frameworks nous signalent-ils toujours des erreurs ?
Gestion des erreurs du framework
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!