如何捕获所有PHP错误?

2022-08-31 00:21:42

我需要一个解决方案来捕获所有PHP致命错误,异常,警告等,并有一个回调。

我想向用户显示错误的友好版本并记录该错误。

我正在考虑每天使用文本文件来记录错误。

任何建议或PHP类(库)?


答案 2

这使得几乎所有错误都成为可捕获的实例:ErrorException

set_error_handler(function($errno, $errstr, $errfile, $errline ){
    throw new ErrorException($errstr, $errno, 0, $errfile, $errline);
});

在可能给出错误的代码之前使用它,例如在php文件的最顶部或包含的公共标头中

限制最严重的错误(PHP引擎,服务器,语法)无法使用用户定义的函数处理:,和文件中提出的大部分错误,其中set_error_handler()称为损害它。E_ERRORE_PARSEE_CORE_ERRORE_CORE_WARNINGE_COMPILE_ERRORE_COMPILE_WARNINGE_STRICT

但是,如果语法正确并且服务器没有中断,则不应出现这些错误。

如果需要,您可以使用和register_shutdown_function()error_get_last()


推荐