Push-error-using-stack
- 構文
- (*push-error-using-stack*)
- 機能
- カスタム *error* ハンドラ内での AutoLISP スタックの変数の使用を示すエラー処理関数。
- 引数
なし
- 戻り値
- T (値 T が返される。)
- MEMO:カスタム エラー ハンドラから、エラーが発生した関数内で定義されているスタック上のローカル AutoLISP 変数にアクセスできる。*push-error-using-stack* 関数に対する呼び出しは、*push-error-using-command* に対する以前の呼び出しより優先される。
- *push-error-using-command* または *push-error-using-stack* が呼び出されていない場合、AutoLISP は既定で *push-error-using-stack* が呼び出された場合と同様に動作する。
- 注 : カスタム *error* ハンドラ内で command 関数が使われている場合、この関数は使用できない。
- サンプル
; 次に、*push-error-using-stack* 関数の使用例を示す。 (setq var1 "Global1" ; グローバル変数を設定。 var2 "Global2") (defun mySub_err (err_msg) (if (/= err_msg "Function cancelled") (progn (prompt (strcat "\nError: " err_msg)) (prompt (strcat "\nローカルサブ1: " var1)) (prompt (strcat "\nローカルサブ2: " var2)) (terpri) ) ) (command-s "._undo" "_e") (command-s "._U") (setq *error* olderr) (princ) ) (defun subUtil (val / olderr var1 var2) (*push-error-using-stack*) ; カスタム エラー ハンドラーがローカルへのアクセスを持っているかどうかを示す ; 彼の関数で定義された変数 (setq olderr *error* *error* mySub_err) (command "._undo" "_group") ; このサンプルでは実行されないが、 ; エラー ハンドラーを設定するための良いフレームワーク。 (setq var1 "Sub1" ; ローカル変数 var2 "Sub2") ;; なんかの処理 (strcat "Foo" val) (command "._undo" "_e") (setq *error* olderr) ; *error* ハンドラを戻す (*pop-error-mode*) ; 終了の *push-error-using-command* ) (defun my_err (err_msg) (if (/= err_msg "Function cancelled") (progn (prompt (strcat "\nError: " err_msg)) (prompt (strcat "\nローカル1: " var1)) (prompt (strcat "\nローカル2: " var2)) (terpri) ) ) (command "._undo" "_e") (command "._U") (setq *error* olderr) (princ) ) (defun myUtil (val / var1 var2) (setq olderr *error* *error* my_err) (*push-error-using-command*) ; カスタム エラー ハンドラーのコマンド-s の代わりに ; Command 関数の使用を示す (setq var1 "Local1" ; いくつかのローカル変数を設定。 var2 "Local2") (command "._undo" "_group") ; 次このサンプルでは実行されないが、エラー ハンドラーを ; 設定するための良いフレームワーク。 (subUtil val) ; 使用するカスタム関数を呼び出す *push-error-using-stack* (/ 1 0) ; カスタム エラー ハンドラーをトリガーに不適切な値を持つ関数を呼び出す ; コードを設定するときを削除。 ;; Perform your tasks here (command "._undo" "_e") (setq *error* olderr) ; *error* を戻す (*pop-error-mode*) ; 終了の *push-error-using-command* )
関連事項