php异常处理而不启用error_reporting


php exception handling without error_reporting on

我正在开发一个遗留应用程序,在大多数文件的开头,使用error_reporting(0)禁用php错误报告。该应用程序基本上正常工作,但如果我启用错误报告,就会出现很多错误,执行会在第一个错误时停止。禁用错误报告时,错误不会记录在任何位置。如果我启用错误报告,错误日志记录会非常有效。是否有任何方法可以在不停止脚本执行的情况下启用错误报告,就像禁用了错误报告一样?我需要记录错误,但我也需要应用程序继续按原样运行。

否。

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

例外是不同的,它们是可捕捉的,您可以通过try/catch来决定如何处理它们。我在这里看到了很多的代码,人们只是忽略任何捕捉到的异常,然后若无其事地继续,但这通常是一个大错误,也是他们出现问题的原因,需要发布SO。在显示错误并停止执行之前,应该通过清理程序[完成文件写入、关闭句柄/连接等]来处理大多数异常。

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

确保这在php.ini文件中:

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