CLCS
Function

invoke-restart

invoke-restart restart &rest arguments ⇒ {result}*

Arguments and Values

restarta restart designator.
argumentan object.
resultsthe values returned by the function associated with restart, if that function returns.

Description

Calls the function associated with restart, passing arguments to it. Restart must be valid in the current dynamic environment.

Examples

 (defun add3 (x) (check-type x number) (+ x 3))

 (foo 'seven)
 |>  Error: The value SEVEN was not of type NUMBER.
 |>  To continue, type :CONTINUE followed by an option number:
 |>   1: Specify a different value to use.
 |>   2: Return to Lisp Toplevel.
 |>  Debug> |>>(invoke-restart 'store-value 7)<<|
⇒  10

Side Effects

A non-local transfer of control might be done by the restart.

Affected By

Existing restarts.

Exceptional Situations

If restart is not valid, an error of type control-error is signaled.

Notes

The most common use for invoke-restart is in a handler. It might be used explicitly, or implicitly through invoke-restart-interactively or a restart function.

Restart functions call invoke-restart, not vice versa. That is, invoke-restart provides primitive functionality, and restart functions are non-essential "syntactic sugar."