Learn R Programming

base (version 3.4.0)

stop: Stop Function Execution

Description

stop stops execution of the current expression and executes an error action. geterrmessage gives the last error message.

Usage

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

Arguments

zero or more objects which can be coerced to character (and which are pasted together with no separator) or a single condition object.
call.
logical, indicating if the call should become part of the error message.
domain
see gettext. If NA, messages will not be translated.

Value

geterrmessage gives the last error message, as a character string ending in "\n".

Details

The error action is controlled by error handlers established within the executing code and by the current default error handler set by options(error=). The error is first signaled as if using signalCondition(). If there are no handlers or if all handlers return, then the error message is printed (if options("show.error.messages") is true) and the default error handler is used. The default behaviour (the NULL error-handler) in interactive use is to return to the top level prompt or the top level browser, and in non-interactive use to (effectively) call q("no", status = 1, runLast = FALSE). The default handler stores the error message in a buffer; it can be retrieved by geterrmessage(). It also stores a trace of the call stack that can be retrieved by traceback(). Errors will be truncated to getOption("warning.length") characters, default 1000. If a condition object is supplied it should be the only argument, and further arguments will be ignored, with a warning.

References

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

See Also

warning, try to catch errors and retry, and options for setting error handlers. stopifnot for validity testing. tryCatch and withCallingHandlers can be used to establish custom handlers while executing an expression. gettext for the mechanisms for the automated translation of messages.

Examples

Run this code
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))

Run the code above in your browser using DataLab