自定义PHP错误处理

时间:2013-10-22 20:44:12

标签: php error-handling

我正在遇到......烦恼,我猜...在我使用的应用程序中使用自定义错误处理程序,我希望有人可以提供一些见解。

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

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

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

我们在处理程序

中处理以下错误类型
  • E_WARNING
  • E_USER_WARNING
  • E_ERROR
  • E_USER_ERROR

日志声明注释字符串错误是“警告”,所以我不知道为什么没有调用自定义hanlder。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

根据documentation,您无法将error_handler()的自定义功能用作E_ERROR

  

使用用户定义无法处理以下错误类型   功能:E_ERROR,E_PARSE,E_CORE_ERROR,E_CORE_WARNING,   E_COMPILE_ERROR,E_COMPILE_WARNING和大多数E_STRICT在   调用set_error_handler()的文件。