*pop-error-mode*

提供:GizmoLabs - だいたい CAD LISP なサイト
2021年9月15日 (水) 14:47時点におけるGizmon (トーク | 投稿記録)による版
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
構文
(*pop-error-mode*)


機能
*push-error-using-command* または *push-error-using-stack* に対する以前の呼び出しを終了するエラー処理関数。


引数
  • なし


戻り値
T


  • メモ: *pop-error-mode* に対する呼び出しは、カスタム *error* ハンドラ関数を、以前定義した *error* ハンドラと置き換えた後に実行する必要がある。但し、*error* ハンドラで command-s 関数を使用する場合、この関数は必須ではない。


サンプル
; *pop-error-mode* 関数の使用例
(defun my_err (err_msg)
    (if (/= err_msg "関数キャンセル")
      (prompt (strcat "\nエラー : " err_msg))
    )
    (command "._undo" "_e")
    (command "._U")
    (setq *error* olderr)
  (princ)
)

(defun myUtil (key / )
    (setq olderr *error*
          *error* my_err)
    (*push-error-using-command*)    ; カスタム エラー ハンドラーのcommand-s ではなくコマンド関数の使用を示す
    (command "._undo" "_group")     ; 次にこのサンプルでは実行されませんがエラー ハンドラーを設定するための良いフレームワーク

    (/ 1 0)                         ; トリガー、カスタム エラー ハンドラーの削除コードを設定するときに
                                    ; 不適切な値を持つ関数を呼び出す

    ;; ここでなんかのタスクを実行。

    (command "._undo" "_e")
    (setq *error* olderr)                ; ;古い *error* ハンドラの復元
    (*pop-error-mode*)                   ; ;終了の使用 *push-error-using-command*
)

; サンプル コードをロードした後、コマンド プロンプトに対して (myutil "String") と入力し、
; エラー ハンドラを入力。


関連事項