Jump to the abort restart
The abort restart is the only restart that is established at top
level. It is used by R as a top-level target, most notably when an
error is issued (see abort()
) that no handler is able
to deal with (see with_handlers()
).
rst_abort()
All the restart functions are in the questioning stage. It is not clear yet whether we want to recommend restarts as a style of programming in R.
# The `abort` restart is a bit special in that it is always # registered in a R session. You will always find it on the restart # stack because it is established at top level: rst_list() # You can use the `above` restart to jump to top level without # signalling an error: ## Not run: fn <- function() { cat("aborting...\n") rst_abort() cat("This is never called\n") } { fn() cat("This is never called\n") } ## End(Not run) # The `above` restart is the target that R uses to jump to top # level when critical errors are signalled: ## Not run: { abort("error") cat("This is never called\n") } ## End(Not run) # If another `abort` restart is specified, errors are signalled as # usual but then control flow resumes with from the new restart: ## Not run: out <- NULL { out <- with_restarts(abort("error"), abort = function() "restart!") cat("This is called\n") } cat("`out` has now become:", out, "\n") ## End(Not run)
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.