由于在常规操作中可能发生的错误条件,有许多好的旧程序函数可以发出警告,例如:fopen(),mail(),oci_connect()……
> most obvious workaround据说价格昂贵,并且具有隐藏一切的副作用:
echo @file_get_contents(oops_forgot_dollar);
>自定义错误处理程序看起来有点过分:
private function warningHandler($errno, $errstr, $errfile, $errline/*, array $errcontext*/){
if(error_reporting()===0){
return false;
}else{
throw new ErrorException($errstr, 0, $errno, $errfile, $errline);
}
}
// ....
try{
set_error_handler('CSVLoader::warningHandler', E_WARNING);
$this->fp = fopen($filename, 'r');
restore_error_handler();
$this->readData();
}catch(ErrorException $e){
restore_error_handler();
throw new CSVLoaderException("Could not open file: {$e->getMessage()}");
}
>即使在正确配置的服务器中,让警告通过也很烦人:
>在发展过程中,它们显示在不知名的地方,可以破坏事物
>在生产中,他们使用无用的数据填充错误日志
建议的做法是什么? PHP大师如何处理它?
最佳答案 error_log不是无用的数据
我发现如果有一个每小时的cron作业将error_log文件的内容通过电子邮件发送给某人,通常很容易掌握…….
很快你就会在适当的检查中添加代码库和排序的问题.