在错误情况下停止执行R脚本

时间:2017-04-27 19:31:53

标签: r

如果在任何时候遇到错误,我想停止执行R脚本,这样就不会产生不良输出。

我已经通过了一些trycatch的例子,但是对于如何将它集成到我的代码中却无法明确。这是trycatch的语法

result = tryCatch({
    expr
}, warning = function(warning-condition) {
    warning-handler-code
}, error = function(error-condition) {
    error-handler-code
}, finally={
    cleanup-code
})

使用上面的语法,如果遇到任何类型的错误,如何阻止我的脚本执行更强的文本。

非常感谢任何帮助。

1 个答案:

答案 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条件,并通过信息性消息导致进程退出。也可以给它一个条件对象来执行。

我自己发现这方面的语言文档有些稀缺,但enter image description here。如果您在使用Hadley Wickham has written a nice overview之类的Lisp之前已经认识到遗产。