This help topic is for R version 1.5.0. For the current version of R, try https://stat.ethz.ch/R-manual/R-patched/library/base/html/try.html
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, first = TRUE)

Arguments

expr

an R expression to try

first

not for user use!

Details

try is a user-friendly wrapper to restart. The argument first is used to record if restart has already been used, and so ensure that restart is called only once.

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 if fails. The normal error handling will print the same message unless options("show.error.messages") is false.

See Also

options for setting error handlers and suppressing the printing of error messages; geterrmessage for retrieving the last error message.

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)

## 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")
}
options(show.error.messages = FALSE)
## alternative 1
res <- lapply(1:100, function(i) try(doit(x)))
## alternative 2
## Not run: res <- vector("list", 100)
for(i in 1:100) res[[i]] <- try(doit(x))
## End(Not run)
options(show.error.messages = TRUE)
unlist(res[sapply(res, function(x) !inherits(x, "try-error"))])

[Package base version 1.5.0 ]