php - PHP-对每个错误或警告执行一些代码

标签 php error-handling

我正在寻找一种通用方式以对每个错误/警告等执行一些代码。

我有多个具有相同代码库的网站,我想将所有错误收集在一个集中的位置。为此,我需要在每次引发错误时调用的回调。

是否可以仅使用PHP(代码或配置)来实现此目的,或者我需要进入Web服务器级别?

最佳答案

简而言之,没有。如果PHP崩溃(从而产生错误),则没有简单的方法来收集该错误,因为被调用的脚本在遇到错误后将停止。

set_error_handler() 可以解决此问题,但是许多错误类型(E_ERROR,E_PARSE,E_CORE_ERROR,E_CORE_WARNING,E_COMPILE_ERROR,E_COMPILE_WARNING和大多数E_STRICT)将无法通过这种方式捕获。

如果错误是由产生异常的类和方法创建的,请使用 try{} catch{} 结构捕获尽可能多的错误。

可以想象,可以将您的环境设置为每个PHP调用实际上都是对master-PHP文件的调用,然后再执行PHP脚本并收集输出并将其显示给用户,但这会带来很多不必要的复杂性。

如果您正在运行AJAX environment(PHP调用是通过AJAX调用,而不是URL更改),则可以设置一个JavaScript侦听器来捕获意外结果并将其存储。这就是我目前的做法。

我很想听听别人是否有其他技巧可以捕捉错误。

关于php - PHP-对每个错误或警告执行一些代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55558852/

相关文章:

php - 如何在php中删除我网站的所有cookie

php - 不允许人们发布私有(private) youtube 视频链接

java - 处理多种类型的错误

c++ - 在方法C中设置常量字符串相等?

PHP 扩展 : convert an object to string with __toString()

Linux 上的 PHP 5.4 : How to connect with MS SQL Server 2008?

php - 如何测试我的 PHP 代码 - 我可以使用哪些测试框架?

python - Django Model.object.get pre_save 函数奇怪

c# - 如何使程序找到保存和读取文件的位置?

tomcat - 自定义动态错误404页面-guice/tomcat