没有error_reporting的php异常处理

时间:2014-04-11 17:12:09

标签: php error-handling

我正在使用遗留应用程序,在大多数文件的开头,使用error_reporting(0)禁用php错误报告。该应用程序大部分都在运行,但是如果我启用错误报告,则会出现很多错误,并且会在第一个错误处理中停止执行。禁用错误报告时,不会在任何位置记录错误。如果我启用错误报告,错误记录效果很好。有没有办法在不停止执行脚本的情况下启用错误报告,就像错误报告被禁用一样?我需要记录错误,但我还需要应用程序继续按原样运行。

2 个答案:

答案 0 :(得分:0)

确保这在您的php.ini文件中:

display_errors = Off
error_log = /var/log/php/error.log
log_errors = On

答案 1 :(得分:0)

没有

错误的定义是程序遇到无法恢复的状态。如果它是可恢复的/可避免的/非破坏性的,那么它可能是一个警告。

异常是不同的,它们是可捕获的,您可以使用try / catch决定如何处理它们。我在这里看到一个很多的代码,人们只是忽略任何被捕获的异常并继续,好像什么也没发生,但这通常是一个大错误,也是他们遇到问题需要SO帖子的原因。在显示错误和停止执行之前,应通过清理程序[完整文件写入,关闭句柄/连接/等]来处理大多数异常。

其中一些可以使用set_error_handler()完成,但仍应在自定义错误处理程序结束时暂停执行。