《通链参考手册》


Function INVOKE-RESTART

●语法设定:

invoke-restart restart &rest arguments => result*

●参数和值:

restart---a restart designator.

argument---an object.

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

●详情:

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

●例子:

 (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

●副作用:

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

●受制于:

Existing restarts.

●例外情况:

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

●更多信息:

find-restart, restart-bind, restart-case, invoke-restart-interactively

●说明:

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


◇首页 § ◎章节目录 § □内容索引 § ○符号索引 § △术语表 § ※设计草案