當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。