invoke-restart-interactively
restart ⇒ {result}*
restart—a restart designator.
results—the values returned by the function associated with restart, if that function returns.
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)
(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
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.
*query-io*, active restarts
If restart is not valid, an error of type control-error is signaled.
find-restart [Function] , invoke-restart [Function] , restart-case [Macro] , restart-bind [Macro]
invoke-restart-interactively is used internally by the debugger and may also be useful in implementing other portable, interactive debugging tools.