我正在遇到......烦恼,我猜...在我使用的应用程序中使用自定义错误处理程序,我希望有人可以提供一些见解。
作为我们网站数据聚合的一部分,自定义蜘蛛和解析器是在我们的代码库之外的基础上构建的。它们存储在数据库中,并通过齿轮器过程中的eval运行。
有一个自定义错误处理程序设置,如果出现错误,就会插入正在运行的公司的ID号(如果在正则表达式中忘记了分隔符,或者当我没有使用我的分区时出现零除错误咖啡)。在大多数情况下,这个错误处理程序运行良好。
但是,我注意到如果eval'd代码中有未终止的注释,则不使用错误处理程序,因此php错误日志不包含有问题的公司的ID号。
我们在处理程序
中处理以下错误类型日志声明注释字符串错误是“警告”,所以我不知道为什么没有调用自定义hanlder。
有什么想法吗?
答案 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()的文件。