php - 自定义PHP错误处理

标签 php error-handling

我遇到了麻烦……我想……在我使用的应用程序中有一个自定义错误处理程序,我希望这里的人可以提供一些见识。

作为我们网站数据聚合的一部分,自定义爬虫和解析器是在我们代码库之外的各个基础上构建的。它们存储在数据库中,并通过Gearman进程中的eval运行。

有一个自定义的错误处理程序设置,如果有错误(例如,正则表达式中忘记了分隔符,或者当我没有喝咖啡时会出现零除错误),则插入要运行的公司的ID号。在大多数情况下,此错误处理程序效果很好。

但是,我注意到,如果在eval'd代码中有未终止的注释,则不会使用错误处理程序,因此php错误日志中不会包含有问题的公司的ID号。

我们在处理程序中处理以下错误类型

  • E_WARNING
  • E_USER_WARNING
  • E_ERROR
  • E_USER_ERROR

  • 日志指出注释字符串错误为“警告”,因此我不知道为什么未调用自定义处理程序。

    有什么想法吗?

    最佳答案

    根据documentation,您不能将自定义函数用作error_handler()E_ERROR:

    The following error types cannot be handled with a user defined function: E_ERROR, E_PARSE, E_CORE_ERROR, E_CORE_WARNING, E_COMPILE_ERROR, E_COMPILE_WARNING, and most of E_STRICT raised in the file where set_error_handler() is called.

    关于php - 自定义PHP错误处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19527968/

    相关文章:

    php - OpenCart 显示错误

    node.js - NodeJS,Joi验证-验证失败后中止执行

    PHP 从 MySQL 数据库中搜索 FUL​​LTEXT 转义字符串

    python - discord.py 对 cog 中每个命令的错误处理

    php - 如何从 mySQL DB 输出每个帖子下的完整评论列表?

    php - 使用 PHP/MySQL 自动化电子邮件营销事件,不知道如何构建查询

    ios - 应用程序缺少默认组排行榜(ItunesConnect 错误)

    C# Visual Studio 2008 - Windows 窗体设计器中的设计时错误

    php - 将表 ID 存储在另一个表中以便稍后提取数据

    php - Linux 操作系统上 PHP 页面上的图像消失