| 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"))])