【发布时间】:2019-03-04 04:01:10
【问题描述】:
我正在使用的第 3 方库在其代码中使用 @ 错误抑制运算符,这会导致通过 @ 抑制的错误仍然会导致错误输出,因为我使用的是自定义错误处理程序 (set_error_handler())。
在这个page 上面写着
如果您使用 set_error_handler() 设置了自定义错误处理函数,那么它仍然会被调用,但是这个自定义错误处理程序可以(并且应该)调用 error_reporting(),当触发错误的调用之前时,它将返回 0通过@。
但不清楚我如何准确地捕捉到@前面的错误。
我的问题是如何捕捉通过 @ 抑制的错误?
【问题讨论】:
-
正如它所说:您的错误处理程序仍将照常调用,但在您的错误处理程序中调用
error_reporting()将产生0。所以你的错误处理程序应该考虑到这一点并采取相应的行动。不确定这里有什么不清楚的地方……? -
@deceze 啊哈,我看错了。另外,我不知道
error_reporting()实际上会返回一些有价值的东西。谢谢!您可以将其发布为答案,我会接受!
标签: php error-handling suppress-warnings error-suppression