如果在任何时候遇到错误,我想停止执行R脚本,这样就不会产生不良输出。
我已经通过了一些trycatch的例子,但是对于如何将它集成到我的代码中却无法明确。这是trycatch的语法
result = tryCatch({
expr
}, warning = function(warning-condition) {
warning-handler-code
}, error = function(error-condition) {
error-handler-code
}, finally={
cleanup-code
})
使用上面的语法,如果遇到任何类型的错误,如何阻止我的脚本执行更强的文本。
非常感谢任何帮助。
答案 0 :(得分:0)
正如ahly所评论的那样,如果你想提前停止执行,你应该调用stop()。它需要一个字符串作为脚本停止原因的参数。
您可能知道,finally子句中的代码仍将被执行。
tryCatch(stop("Called stop"), finally = {cat("Still executed")})
将提供以下内容
Error in tryCatchList(expr, classes, parentenv, handlers) : Called stop
Still executed
如果您想了解更多信息,R中的条件概念值得一读。 stop
表示内部处理的simpleError条件,并通过信息性消息导致进程退出。也可以给它一个条件对象来执行。
我自己发现这方面的语言文档有些稀缺,但。如果您在使用Hadley Wickham has written a nice overview之类的Lisp之前已经认识到遗产。