[R] tryCatch in a package
Sebastian P. Luque
spluque at gmail.com
Thu Mar 8 03:35:25 CET 2012
Hi,
Suppose we have a general function that returns a logical indicating
which values in 'x' are found in 'l', throwing an error if none are
found and a warning if only some are found:
"checkFun" <- function(l, x)
{
xinl <- x %in% l
if (! any(xinl)) stop("none of the x values found in l")
if (any(! xinl))
warning("x ", x[! xinl], " do(es) not exist")
xinl
}
This function would be used in several other functions that need to stop
and throw the error message or give the warning and use the logical
value, as here:
"getListElement" <- function(k, y) {
tryCatch({
ok <- checkFun(names(k), y)
dm <- k[y[ok]]
if (length(y) == 1L) dm[[1]] else dm # just to simplify if only 1
})
}
K <- list(A=1, B=2, C=3)
Y <- LETTERS[1:5]
getListElement(K, Y)
Is this good practice in a package, or should the functionality of
checkFun() be implemented inside tryCatch via the different handlers?
Thanks,
--
Seb
More information about the R-help
mailing list