npt-japanese

% Function INVOKE-RESTART

UP


Function INVOKE-RESTART

Function INVOKE-RESTART

構文

invoke-restart restart &rest arguments => result*

引数と戻り値

restart - restart指定子
argument - オブジェクト
result - restartに関係づいた関数による返却値(もしあるなら)。

定義

restartに関連づいた関数を引数argumentsとともに呼び出します。 restartは現在の動的環境下で有効なものでなければなりません。

例文

(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

副作用

restartによって非局所的な遷移の制御が行われるかもしれません。

影響

存在するrestart

例外

もしrestartが有効でないときは、 型control-errorのエラーが発生します。

参考

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

備考

もっとも一般的には、invoke-restartはハンドラーの中で使用されます。 それは明示的に使用されるかもしれませんし、 または暗黙的にinvoke-restart-interactivelyrestart関数を通して使用されるかもしれません。

restart関数はinvoke-restartを呼び出しますし、 逆もまた成り立ちます。 これは、invoke-restartが原始的な機能を提供しており、 restasrt関数は本質ではない「糖衣構文」です。


TOP, Github