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