我正在寫一個函數,它需要在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