Exit Error Checks

Usage

exitCheck()

Description

exitCheck provides a mechanism to distinguish the exit status in on.exit expressions.

Details

It generates a function that is used wihtin a function's body to "flag" normal exits and in its on.exit expression to check the exit status of a function. Note that it will correctly detect errors only if all normal exit are wrapped into a call to it.

Examples

# define some function
f <- function(err){ # initialise an error checker success <- exitCheck() # do something on exit that depends on the error status on.exit({ if(success()) cat("Exit with no error: do nothing\n") else cat("Exit with error: cleaning up the mess ...\n") }) # throw an error here if( err ) stop('There is an error') success(1+1) }
# without error
f(FALSE)
Exit with no error: do nothing
[1] 2
# with error
try( f(TRUE) )
Exit with error: cleaning up the mess ...