就像这个答案所暗示的那样,您可以
register_shutdown_function()用来注册将检查的回调
error_get_last()。
无论是
@( 闭嘴 )运算符,还是
ini_set('display_errors', false)ini_set('display_errors', false);error_reporting(-1);set_error_handler(function($pre, $string, $file, $line){ throw new ErrorException($string, null, $pre, $file, $line); });register_shutdown_function(function(){ $error = error_get_last(); if(null !== $error) { echo 'Caught at shutdown'; } });try{ while(true) { $data .= str_repeat('#', PHP_INT_MAX); }}catch(Exception $exception){ echo 'Caught in try/catch';}运行时,输出
Caught atshutdown。不幸的是,
ErrorException没有抛出异常对象,因为致命错误触发了脚本终止,随后仅在关闭函数中被捕获。
您可以
$error在关闭功能中检查阵列以获取有关原因的详细信息,然后做出相应的响应。一个建议可能是针对您的Web应用程序重新发出请求(
在不同的地址或使用不同的参数 ),然后返回捕获的响应。
我建议保持
error_reporting()较高 的值
-1( 值为 ),并使用( 如其他人所建议的
)对
set_error_handler()和进行其他所有操作
ErrorException。



