我不明白如何发现错误。
例如我写了一个脚本:
morph_input = tryCatch(prepareMorphObjectFromFiles(InputConfig,InputGOI),
error=stop("Please Start Over,your Data Sets or uploaded GOI are not suitable."))
我希望如果函数prepareMorphObjectFromFiles(InputConfig,InputGOI)
中断,那么错误就会弹出。但即使功能没有中断,它也会一直弹出。
答案 0 :(得分:4)
您应该将错误处理函数作为error
中的tryCatch()
参数传递。否则它确实将被评估。一个例子:
tryCatch({
if (runif(1) > 0.8) stop("catch me if you can!")
else "OK"
},
error=function(err) {
# an error handler
cat("An error occured.\n")
})
答案 1 :(得分:2)
@gagolews给出了最想要的东西。我喜欢只使用try
,这有助于我对代码进行更线性的思考(即分步进行)。
out <- try({
if (runif(1) > .7) stop("catch me if you can!")
else "OK"
}, silent = TRUE)
if(inherits(out, "try-error")) message("went bad")