Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
自定义PHP错误处理_Php_Error Handling - Fatal编程技术网

自定义PHP错误处理

自定义PHP错误处理,php,error-handling,Php,Error Handling,我想,在我使用的应用程序中,我遇到了一个自定义错误处理程序,我希望这里的人能提供一些见解 作为站点数据聚合的一部分,自定义爬行器和解析器是在代码库之外单独构建的。它们存储在数据库中,通过gearman进程内部的eval运行 有一个自定义的错误处理程序设置,在出现错误时插入正在运行的公司的ID号(比如在正则表达式中忘记了分隔符,或者在我没有喝咖啡时出现了被零除的错误)。在大多数情况下,这个错误处理程序工作得很好 但是,我注意到,如果eval’d代码中有未终止的注释,则不会使用错误处理程序,因此ph

我想,在我使用的应用程序中,我遇到了一个自定义错误处理程序,我希望这里的人能提供一些见解

作为站点数据聚合的一部分,自定义爬行器和解析器是在代码库之外单独构建的。它们存储在数据库中,通过gearman进程内部的eval运行

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

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

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

  • 紧急警告
  • 用户警告
  • E_误差
  • 用户错误
日志声明注释字符串错误为“警告”,因此我不知道为什么不调用自定义hanlder

有什么想法吗?

根据,对于
E\u error
,您不能将自定义函数用作
error\u handler()

以下错误类型无法使用用户定义的 功能:E_错误、E_解析、E_核心错误、E_核心警告、, E_COMPILE_错误、E_COMPILE_警告,以及在 调用set_error_handler()的文件


您是否使用
set\u error\u handler()
来处理错误?好奇的是,您能否在所有代码的末尾添加
/**/\n
?这将迫使终止评论。未终止的结果不是唯一导致奇怪问题的原因,但它是最容易解释的。因此,如果它作为警告放在日志中,我猜这是核心或编译警告?有没有办法知道它是什么?很抱歉,我不确定这一点,因为我的所有机器上都安装了
xdebug
,我的错误看起来像:
PHP解析错误:语法错误,意外'),在第38行,
的堆栈跟踪中预期为“(”。您可以尝试从以下问题实现解决方案: