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.35 invoke-restart-interactively Function

Syntax:
invoke-restart-interactively restart    {result}*

Arguments and Values:
restart - a restart designator.

results - the values returned by the function associated with restart, if that function returns.

Description:
invoke-restart-interactively calls the function associated with restart, prompting for any necessary arguments. If restart is a name, it must be valid in the current dynamic environment.

invoke-restart-interactively prompts for arguments by executing the code provided in the :interactive keyword to restart-case or :interactive-function keyword to restart-bind.

If no such options have been supplied in the corresponding restart-bind or restart-case, then the consequences are undefined if the restart takes required arguments. If the arguments are optional, an argument list of nil is used.

Once the arguments have been determined, invoke-restart-interactively executes the following:

 (apply #'invoke-restart restart arguments)

Examples:
 (defun add3 (x) (check-type x number) (+ x 3))
 
 (add3 '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-interactively 'store-value)
 Type a form to evaluate and use: 7
 10

Side Effects:
If prompting for arguments is necesary, some typeout may occur (on query I/O).

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

Affected By:
*query-io*, active restarts

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

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

Notes:
invoke-restart-interactively is used internally by the debugger and may also be useful in implementing other portable, interactive debugging tools.

Allegro CL Implementation Details:
None.

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