Citing Advanced R solutions:
At the time Advanced R was written, the source for catch_cnd() was a little simpler
catch_cnd <- function(expr) {
tryCatch(
condition = function(cnd) cnd,
{
force(expr)
return(NULL)
}
)
}
Maybe it would be a good idea to include the old source to the question.