【发布时间】:2011-09-18 01:18:32
【问题描述】:
我为我的网站编写了一个自定义错误处理程序,并且我知道 PHP 不允许处理解析错误和致命错误。我能做些什么来让它处理这些错误吗?我不希望它们被输出给用户(但我想为它们使用我的错误处理程序)。
谢谢!
【问题讨论】:
标签: php error-handling fatal-error parse-error
我为我的网站编写了一个自定义错误处理程序,并且我知道 PHP 不允许处理解析错误和致命错误。我能做些什么来让它处理这些错误吗?我不希望它们被输出给用户(但我想为它们使用我的错误处理程序)。
谢谢!
【问题讨论】:
标签: php error-handling fatal-error parse-error
你可以试试register_shutdown_function。如果您包含/需要的文件之一中有错误(甚至解析错误),仍将调用此函数。
虽然您将无法使用debug_backtrace,因为将在您的错误之外调用关闭函数,但您可以尝试使用error_get_last 来获取有关错误的一些信息。
【讨论】:
如果它无法解析您的脚本,它将无法解析您的自定义错误处理程序。
您应该在您的php.ini 中关闭display_errors,并在您的网站投入生产时将error_reporting 设置为无。
另外,我相信set_error_handler() 可以处理致命错误。
【讨论】:
set_error_handler() 仍然不能处理致命错误;只需将display_error 设置为关闭即可。