当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


R stop 停止函数执行


R语言 stop 位于 base 包(package)。

说明

stop 停止当前表达式的执行并执行错误操作。

geterrmessage 给出最后的错误消息。

用法

stop(..., call. = TRUE, domain = NULL)
geterrmessage()

参数

...

零个或多个可以强制为字符的对象(并且不带分隔符粘贴在一起)或单个条件对象。

call.

逻辑,指示调用是否应成为错误消息的一部分。

domain

请参阅gettext。如果是 NA ,消息将不会被翻译。

细节

错误操作由执行代码中建立的错误处理程序以及 options(error=) 设置的当前默认错误处理程序控制。首先像使用 signalCondition() 一样发出错误信号。如果没有处理程序或所有处理程序都返回,则打印错误消息(如果 options("show.error.messages") 为 true)并使用默认错误处理程序。交互式使用中的默认行为(NULL error-handler)是返回到顶级提示或顶级浏览器,而在非交互式使用中则(有效)调用 q("no", status = 1, runLast = FALSE )。默认处理程序将错误消息存储在缓冲区中;可以通过 geterrmessage() 检索。它还存储可以通过 traceback() 检索的调用堆栈跟踪。

错误将被截断为 getOption("warning.length") 字符,默认 1000。

如果提供了条件对象,它应该是唯一的参数,其他参数将被忽略,并带有警告。

geterrmessage 给出最后的错误消息,作为以 "\n" 结尾的字符串。

注意

每当 ... 包含 gettextf() 的结果(因为该结果已翻译)时,请使用 domain = NA

例子

iter <- 12
try(if(iter > 10) stop("too many iterations"))

tst1 <- function(...) stop("dummy error")
try(tst1(1:10, long, calling, expression))

tst2 <- function(...) stop("dummy error", call. = FALSE)
try(tst2(1:10, longcalling, expression, but.not.seen.in.Error))

参考

Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988) The New S Language. Wadsworth & Brooks/Cole.

也可以看看

warningtry 用于捕获错误并重试,options 用于设置错误处理程序。 stopifnot 用于有效性测试。 tryCatchwithCallingHandlers 可用于在执行表达式时建立自定义处理程序。

gettext 用于消息自动翻译的机制。

相关用法


注:本文由纯净天空筛选整理自R-devel大神的英文原创作品 Stop Function Execution。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。