【发布时间】:2014-01-10 14:21:54
【问题描述】:
我有一个通过 ajax 调用一些 php 函数的接口。
我只在生产中发现了一个未发现的错误。由于我大量使用 getJson 数据交换,我需要使用自定义 php 错误处理程序来消除错误和警告。
问题是,无论如何,当代码在生产中产生错误时,我希望将其打印给用户,以了解问题出在哪里。我的代码是:
function myErrorHandler($errno, $errstr, $errfile, $errline)
{
switch ($errno) {
case E_ERROR:
case E_USER_ERROR:
$error= "<b>My ERROR</b> [$errno] $errstr<br />\n";
$error.= " Fatal error on line $errline in file $errfile";
$error.= ", PHP " . PHP_VERSION . " (" . PHP_OS . ")<br />\n";
$error.= "Aborting...<br />\n";
if(isAjaxCalling()){
$_SESSION['Errors']['Errors'][]=$error;
}
ini_set('display_errors',1);
ini_set('error_reporting','E_ALL');
echo $error;
exit(1);
break;
case E_WARNING:
case E_USER_WARNING:
....
}
【问题讨论】:
-
1 - 我认为你需要删除 ini_set('display_errors',1); ini_set('error_reporting','E_ALL'); 2 - 为什么不将 $error 保存在 txt 文件中或通过电子邮件发送?
-
E_ALL 是常量,不要用引号括起来。它变成 0 然后 => 没有错误报告。
-
E_ALL 也可以作为字符串使用
标签: php ajax json error-handling