「*pop-error-mode*」の版間の差分

提供:GizmoLabs - だいたい CAD LISP なサイト
(ページの作成:「{{AutoLISP}} ; 構文 : (*pop-error-mode*) ; 機能 : *push-error-using-command* または *push-error-using-stack* に対する以前の呼び出しを終了するエ...」)
 
編集の要約なし
 
6行目: 6行目:
; 機能
; 機能
:  *push-error-using-command* または *push-error-using-stack* に対する以前の呼び出しを終了するエラー処理関数。  
:  *push-error-using-command* または *push-error-using-stack* に対する以前の呼び出しを終了するエラー処理関数。  


; 引数
; 引数
:* なし
:* なし


; 戻り値
; 戻り値
: T
: T


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

2021年9月15日 (水) 14:47時点における最新版

構文
(*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") と入力し、
; エラー ハンドラを入力。


関連事項