0

手册中所述,如果错误来自抑制,则调用error_reporting()将返回。但由于我的生产服务器始终设置为(在脚本之上),调用将始终返回到.0@error_reporting(0)error_reporting()0

我如何才能真正捕捉或区分合法错误与被 抑制的错误@

现在我的错误处理程序是这样的:

if (error_reporting() == (E_ALL OR -1))
    echo 'display specific error';
elseif (error_reporting() == 0)
    echo 'display general error';

注意:这与我之前的问题有关

4

1 回答 1

2

亩。您不应该设置error_reporting0,即使在生产中也是如此。

在开发中,您需要将错误报告级别设置为可能的最高级别,以便收到有关任何和所有错误或通知或弃用消息或可能在未来造成问题的问题的通知。

在生产中,您需要将错误报告级别设置为仅包括错误和警告,但不包括弃用通知之类的内容。这是为了使您的错误日志免受多余信息的影响,并能够有效地追踪生产错误。

因为您应该始终记录错误

您在生产中不应该做的是在屏幕上显示错误。这就是ini_set('display_errors', true|false)控制。您仍然需要有关生产的错误报告,只需将其写入日志文件即可。

于 2018-09-28T09:31:44.823 回答