[Rd] tryCatch in on.exit()

William Dunlap wdunlap at tibco.com
Fri Dec 1 21:58:11 CET 2017


The following example involves a function whose on.exit()
expression both generates an error and catches the error.
The body of the function also generates an error.

When calling the function wrapped in a tryCatch, should
that tryCatch's error function be given the error from the
body of the function, since the one from the on.exit has
already been dealt with?  Currently the outer tryCatch gets
the error from the on.exit expression.

xx <- function() {
  on.exit(tryCatch(
    expr = stop("error in xx's on.exit"),
    error=function(e) {
      cat("xx's on.exit caught error: <<", conditionMessage(e), ">>\n",
sep="")
    }))
  stop("error in body of xx")
}
zz <- tryCatch(xx(), error=function(e)paste("outer tryCatch caught error
<<", conditionMessage(e), ">>", sep=""))
#xx's on.exit caught error: <<error in xx's on.exit>>
zz
#[1] "outer tryCatch caught error <<error in xx's on.exit>>"


Bill Dunlap
TIBCO Software
wdunlap tibco.com

	[[alternative HTML version deleted]]



More information about the R-devel mailing list