1

可能重复:
如何捕获 PHP 致命错误

我想创建一个自定义错误处理程序,但 PHP 忽略它仍然使用内置的错误处理程序。下面的示例给出了一个内置的致命错误,因为未定义 test():

 function critical_error($error_number,$error_string,$error_file,$error_line,$error_context) {
     echo "<strong>error:</strong> echo ".$error_string;
     exit();
 }

 set_error_handler("critical_error",8191);
 test();
 exit;

有什么建议吗?

4

1 回答 1

5

您可能错误地定义了错误级别。尝试使用:

set_error_handler("critical_error", E_ALL);

另请注意:

用户定义的函数无法处理以下错误类型:E_ERROR、E_PARSE、E_CORE_ERROR、E_CORE_WARNING、E_COMPILE_ERROR、E_COMPILE_WARNING,以及在调用 set_error_handler() 的文件中引发的大部分 E_STRICT。

但是如果没有完整的脚本(包括test()),就很难说。我已经在本地服务器上对其进行了测试,一切正常。

于 2012-12-19T08:47:53.820 回答