我从网站收集数据,有时似乎无法访问(或者,它可能只是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;
}
Run Code Online (Sandbox Code Playgroud)
你确定它实际上是在停止程序的执行吗?我的意思是,如果它不是例外......它不是例外.据我所知,cURL不会抛出任何异常或致命错误.您所看到的最有可能只是定期通知/警告.要确定您是否有cURL错误,您可以使用curl_errno()和curl_error()函数:
if(curl_errno($ch))
{
echo 'error:' . curl_error($ch);
}
Run Code Online (Sandbox Code Playgroud)
或者,如果要抛出自定义异常:
//you'll probably want to customize this further based on the type of error.
if(curl_errno($ch)){
throw new Exception( curl_error($ch) );
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2471 次 |
| 最近记录: |