try {base}R Documentation

Try an Expression Allowing Error Recovery

Description

try is a wrapper to run an expression that might fail and allow the user's code to handle error-recovery.

Usage

try(expr, silent = FALSE)

Arguments

expr an R expression to try.
silent logical: should the report of error messages be suppressed?

Details

try evaluates an expression and traps any errors that occur during the evaluation. try establishes a handler for errors that uses the default error handling protocol. It also establishes a tryRestart restart that can be used by invokeRestart.

Value

The value of the expression if expr is evaluated without error, but an invisible object of class "try-error" containing the error message if it fails. The normal error handling will print the same message unless options("show.error.messages") is false or the call includes silent = TRUE.

See Also

options for setting error handlers and suppressing the printing of error messages; geterrmessage for retrieving the last error message. tryCatch provides another means of catching and handling errors.

Examples

## this example will not work correctly in example(try), but
## it does work correctly if pasted in
options(show.error.messages = FALSE)
try(log("a"))
print(.Last.value)
options(show.error.messages = TRUE)

## alternatively,
print(try(log("a"), TRUE))

## run a simulation, keep only the results that worked.
set.seed(123)
x <- rnorm(50)
doit <- function(x)
{
    x <- sample(x, replace=TRUE)
    if(length(unique(x)) > 30) mean(x)
    else stop("too few unique points")
}
## alternative 1
res <- lapply(1:100, function(i) try(doit(x), TRUE))
## alternative 2
## Not run: 
res <- vector("list", 100)
for(i in 1:100) res[[i]] <- try(doit(x), TRUE)
## End(Not run)
unlist(res[sapply(res, function(x) !inherits(x, "try-error"))])

[Package Contents]