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