我正在写一个函数,它需要在ping基于web的API时捕获一个速率限制错误。Sys.sleep()之前没有执行的函数()
我使用tryCatch
捕获错误,而这个函数里面我指定以下误差函数:
error=function(e) {
warning(paste(e,"\nWaiting an hour for rate limit to reset..."))
Sys.sleep(3600) # Wait an hour for rate-limit to reset
return(user.info(user, ego.count))
}
的功能似乎工作,但检查输出日志剧本时,我注意到,警告信息不会被写入,直到后的睡眠时间已用完。
我可以在与R控制台重现此问题:前Drew sucks
被打印到控制台
print("Drew sucks")
Sys.sleep(10)
十秒钟通过。在我的功能中,我想在暂停发生之前向用户提供一些关于这种长时间停顿的反馈。
是什么导致了这种行为?
有一件事 - 如果使用'warning',那么用户可以使用'suppressWarnings'来不显示消息。采用这种解决方案需要另一种方法。 – Marek 2011-06-01 08:11:13