【发布时间】:2021-06-12 04:46:40
【问题描述】:
我想在超时错误中捕获无效输入错误。我写的脚本如下。但是,在这种情况下超时不起作用,程序永远运行。任何人都可以请检查并让我知道如何解决它吗?谢谢。
for (lb in 1:100) {
rs <- tryCatch(
expr = {
cat("helloworld", "\n");
withTimeout({
rs_son = tryCatch(
expr = {
flag = FALSE
cat("start solnl", "\n");
ret = solnl(X, objfun = obj, confun = con, lb=lb, ub=ub);
cat("finish solnl", "\n");
},
error = function(e) {flag <- TRUE}
)
if(flag) {next}
},
timeout = 10)
},
TimeoutException = function(ex) {
cat("Timeout. Skipping.\n")
}
)
}
更清楚地说,这就是我想要实现的目标。无论这是对 solnl 函数的无效输入错误还是超时错误,for 循环都应该继续。
【问题讨论】:
标签: r exception error-handling timeout try-catch