R: Jump to the abort restart

rst_abort {rlang} | R Documentation

## Jump to the abort restart

### Description

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()`).

### Usage

    rst_abort()

### Life cycle

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.

### See Also

`rst_jump()`, `abort()`

### Examples

    # 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)

[Package rlang version 0.4.7 Index]