ToC DocOverview CGDoc RelNotes Index PermutedIndex
Allegro CL
Home Previous Up Next Table of Contents Index
  ANSI Common Lisp   9 Conditions   9.2 Dictionary of Conditions

9.2.34 invoke-restart Function

Syntax:
invoke-restart restart &rest arguments    {result}*

Arguments and Values:
restart - a restart designator.

argument - an object.

results - the 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.

See Also:
find-restart, restart-bind, restart-case, invoke-restart-interactively

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."

Allegro CL Implementation Details:
None.

Home Previous Up Next Table of Contents Index
© Franz Inc. All Rights Reserved - File last updated 2022-07-25