stop {base} | R Documentation

## 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

`...` | character vectors (which are pasted together with no separator), a condition object, or `NULL`.
`call.` | logical, indicating if the call should become part of the error message.
`domain` | see `gettext`. If `NA`, messages will not be translated.

### 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.

An attempt is made to coerce other types of inputs to character vectors.

### Value

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

### 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

    options(error = expression(NULL))
    # don't stop on stop(.)  << Use with CARE! >>

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

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

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

    options(error = NULL)# revert to default

[Package base version 2.3.1 Index]