如何判断错误是否被@错误控制运算符抑制?

时间:2018-09-28 07:34:15

标签: php error-handling suppress-warnings error-suppression

我正在使用的第三方库在其代码中使用@错误抑制运算符,由于我使用自定义错误处理程序git ls-tree --full-tree -r HEAD ,因此通过@导致抑制错误的操作仍会导致错误输出。

在此page中说

  

如果您已使用set_error_handler()设置了自定义错误处理程序函数,则该函数仍将被调用,但是此自定义错误处理程序可以(并且应该)调用error_reporting(),该函数将在触发触发错误的调用之前返回0。通过@。

但是目前尚不清楚我如何准确地捕获@之前的错误。

我的问题是如何捕获通过@抑制的错误?

1 个答案:

答案 0 :(得分:1)

它说:您的错误处理程序仍将照常调用,但是如果错误是在error_reporting()的上下文中产生的,则在错误处理程序内部调用0会产生@ 。因此,您的错误处理程序应考虑到这一点并采取相应措施。