Restart STORE-VALUE

UP


Restart STORE-VALUE

Restart STORE-VALUE

要求される引数のデータ

かわりに使う値(基本的に使い続ける)

定義

store-value restartは、 一般的にはcell-errortype-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)
    x)) =>  3.0

参考

9.1.4.2. restart, 9.1.4.2.2. restartのインターフェイス, invoke-restart, store-value(関数), ccase, check-type, ctypecase, use-value(関数), use-valuerestart


TOP, Github