Function FIND-RESTART
find-restart
identifier &optional
condition
=> restart
identifier - nil
ではなシンボルか、restart
condition - コンディションオブジェクトか、nil
restart - restart
か、nil
find-restart
は、現在の動的環境下で特定のrestartを探します。
もしconditionがnil
ではないときは、 それらのrestart
は、明にconditionと関連付けられているものか、 あるいはどのコンディションにも関連付けられてないものかの どちらかのみが集められます。 これは、排他されたrestart
というのは、 関連付けられたコンディションの集合が空ではなく、 その要素に指定したconditionが含まれていないということです。 もしconditionがnil
のときは、 全てのrestart
が集められます。
identifierがシンボルのとき、 もっとも内側(より最近確立されたもの)の その名前の適用可能なrestart
が返却されます。 そのようなrestart
がない場合はnil
です。
もしidentifierが現在の有効なrestart
のときは、 それが返却されます。 そうでないときはnil
が返却されます。
restart-case
(let ((r (find-restart 'my-restart)))
(format t "~S is named ~S" r (restart-name r)))
(nil))
(my-restart () 32307325> is named MY-RESTART
>> #<RESTART => NIL
find-restart 'my-restart)
(=> NIL
なし。
存在するrestart
restart-case
, restart-bind
, with-condition-restarts
なし。
find-restart identifier)
(find identifier (compute-restarts) :key :restart-name) == (
匿名のrestart
はnil
という名前ですが、 identifierにnil
を指定したときの結果は未定義です。 たまにプログラマーはidentifierの引数に nil
は許されないと主張します。 そのような場合、compute-restarts
で おそらく似たような効果を行うことができます。