わかりました、この質問を書き直す必要があります。
もし私が行くならば:
CL-USER> whatever
デバッガーフレームでこれを取得します:
The variable WHATEVER is unbound.
[Condition of type UNBOUND-VARIABLE]
Restarts:
0: [RETRY] Retry SLIME REPL evaluation request.
1: [*ABORT] Return to SLIME's top level.
2: [TERMINATE-THREAD] Terminate this thread (#<THREAD "repl-thread" RUNNING {C0C6CF9}>)
...
したがって、私はこれを行うことができるはずです:
(handler-case
whatever
(unbound-variable (e) (invoke-restart 'retry)))
それでも、次の結果が得られます。
No restart RETRY is active.
[Condition of type SB-INT:SIMPLE-CONTROL-ERROR]
...
私は何が欠けていますか?
ABORT 再試行は正しく機能します。指摘してくれた hans と Svante に感謝します。その他 - 再試行、スレッドの終了など - すべてエラーになります。
また、デバッガーで e を押して、INVOKE-RESTART を直接実行してみました。1 つの例外を除いて同じ結果です。この回答の低レベルの例は、私が思うように機能します。
Eval in frame (COMMON-LISP-USER)> (invoke-restart 'go-on)
文句なしにプロンプトに戻ります。高レベルの例は、再起動メニューから手動で選択した場合にのみ正しく再起動します。