如果一个语句出错,我怎么能简单地告诉R重试几次呢?我希望做些什么,比如:
tryCatch(dbGetQuery(...), # Query database
error = function(e) {
if (is.locking.error(e)) # If database is momentarily locked
retry(times = 3) # retry dbGetQuery(...) 3 more times
else {
# Handle other errors
}
}
)
最佳答案
我通常把try
块放在一个循环中,
当它不再失败或达到最大尝试次数时退出循环。
some_function_that_may_fail <- function() {
if( runif(1) < .5 ) stop()
return(1)
}
r <- NULL
attempt <- 1
while( is.null(r) && attempt <= 3 ) {
attempt <- attempt + 1
try(
r <- some_function_that_may_fail()
)
}
关于r - 如何重试错误声明?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55499003/