【发布时间】:2017-02-25 02:34:28
【问题描述】:
我试图了解如何在循环中使用 tryCatch(),它会跳过任何会产生错误的值并移至循环中的下一项。为了理解语法,我创建了一个带有日志的快速循环,如下所示:
i=0
Log<- function(x) {
tryCatch(log(x),
warning = function(w) {i=i+1;next},
error = function(e) {i=i+1;next},
finally={log(x)})
}
for(input in (-5:5)) {
print(paste("log of", input, "=", Log(input)))
}
我正在尝试跳过任何产生警告或消息的日志值(在这种情况下从 -5 到 0)并对其进行计数(因此 i=0 首先是 i=i+1 )。但是这不起作用,它会产生以下错误:
Error in value[[3L]](cond) : no loop for break/next, jumping to top level
【问题讨论】: