【问题标题】:How do I handle parse and fatal errors?如何处理解析和致命错误?
【发布时间】:2011-09-18 01:18:32
【问题描述】:

我为我的网站编写了一个自定义错误处理程序,并且我知道 PHP 不允许处理解析错误和致命错误。我能做些什么来让它处理这些错误吗?我不希望它们被输出给用户(但我想为它们使用我的错误处理程序)。

谢谢!

【问题讨论】:

标签: php error-handling fatal-error parse-error


【解决方案1】:

你可以试试register_shutdown_function。如果您包含/需要的文件之一中有错误(甚至解析错误),仍将调用此函数。

虽然您将无法使用debug_backtrace,因为将在您的错误之外调用关闭函数,但您可以尝试使用error_get_last 来获取有关错误的一些信息。

【讨论】:

    【解决方案2】:

    如果它无法解析您的脚本,它将无法解析您的自定义错误处理程序。

    您应该在您的php.ini 中关闭display_errors,并在您的网站投入生产时将error_reporting 设置为无。

    另外,我相信set_error_handler() 可以处理致命错误。

    【讨论】:

    • ^ 他说的是,你的脚本在解析错误时失败是有充分理由的,它根本不知道该怎么做
    • 害怕那个。那好吧。不,我已经在上面设置了 set_error_handler() 并且它不起作用。
    • 在 PHP 7.4.10 中,set_error_handler() 仍然不能处理致命错误;只需将display_error 设置为关闭即可。
    猜你喜欢
    • 2010-12-26
    • 1970-01-01
    • 1970-01-01
    • 2011-04-19
    • 1970-01-01
    • 2013-05-02
    • 1970-01-01
    相关资源
    最近更新 更多