我正在使用的第三方库在其代码中使用@错误抑制运算符,由于我使用自定义错误处理程序git ls-tree --full-tree -r HEAD
,因此通过@导致抑制错误的操作仍会导致错误输出。
在此page中说
如果您已使用set_error_handler()设置了自定义错误处理程序函数,则该函数仍将被调用,但是此自定义错误处理程序可以(并且应该)调用error_reporting(),该函数将在触发触发错误的调用之前返回0。通过@。
但是目前尚不清楚我如何准确地捕获@之前的错误。
我的问题是如何捕获通过@抑制的错误?
答案 0 :(得分:1)
它说:您的错误处理程序仍将照常调用,但是如果错误是在error_reporting()
的上下文中产生的,则在错误处理程序内部调用0
会产生@
。因此,您的错误处理程序应考虑到这一点并采取相应措施。