我从网站收集数据,有时似乎无法访问(或者,它可能只是DNS主机,有时会出现一些问题)。 用PHP编写的程序(使用CLI启动)退出并显示错误:
无法解析主人'abcdef.com'
我想拦截此错误,例如异常,因为程序不能退出。
我尝试了“尝试捕获”,但这不起作用。
我想避免使用外部守护进程来重启程序......
感谢您的帮助。
编辑: 使用的代码:
function goToPage($url) {
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_COOKIEFILE, realpath("./cookies/cookie.txt"));
$ret = curl_exec($ch);
if ($ret === FALSE) {
die(curl_error($ch));
}
curl_close($ch);
$this->delay();
return $ret;
}
答案 0 :(得分:5)
您确定它实际上是在停止执行您的程序吗?我的意思是,如果它不是例外......它不是例外。据我所知,cURL不会抛出任何异常或致命错误。您所看到的最有可能只是定期通知/警告。要弄清楚你是否有cURL错误,你可以使用函数curl_errno()和curl_error():
if(curl_errno($ch))
{
echo 'error:' . curl_error($ch);
}
或者,如果您想抛出自定义异常:
//you'll probably want to customize this further based on the type of error.
if(curl_errno($ch)){
throw new Exception( curl_error($ch) );
}