| try {base} | R Documentation |
try is a wrapper to run an expression that might fail and allow
the user's code to handle error-recovery.
try(expr, first = TRUE)
expr |
an R expression to try |
first |
not for user use! |
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.
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.
options for setting error handlers and suppressing the
printing of error messages;
geterrmessage for retrieving the last error message.
## 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
res <- vector("list", 100)
for(i in 1:100) res[[i]] <- try(doit(x))
options(show.error.messages = TRUE)
unlist(res[sapply(res, function(x) !inherits(x, "try-error"))])