Restart STORE-VALUE
かわりに使う値(基本的に使い続ける)
store-value
restart
は、 一般的にはcell-error
かtype-error
のような エラーの型から回復を試みるハンドラーによって使用されます。 回復は置き換えるデータの希望を指定して それに永久に置き換えることによって行います。
defun type-error-auto-coerce (c)
(when (typep c 'type-error)
(let ((r (find-restart 'store-value c)))
(handler-case (let ((v (coerce (type-error-datum c)
(type-error-expected-type c))))
(invoke-restart r v))
(error ()))))) => TYPE-ERROR-AUTO-COERCE
(let ((x 3))
(handler-bind ((type-error #'type-error-auto-coerce))
(check-type x float)
(=> 3.0 x))
9.1.4.2. restart
, 9.1.4.2.2. restart
のインターフェイス, invoke-restart
, store-value
(関数), ccase
, check-type
, ctypecase
, use-value
(関数), use-value
(restart
)