Acet-safe-command
- 構文
- (acet-safe-command cmdlist)
- 機能
- (command) 関数をより安全に実行するためのラッパー(包む)関数。
- 主な目的は、command 関数の実行中にユーザーが [Esc] キーを押してキャンセルしたり、コマンド自体がエラーで失敗したりしても、LISPプログラム全体がエラーで停止してしまうのを防ぐ用途。
- 引数
-
- cmdlist : コマンドとオプションのリスト。 '(<command_name> <arg1> <arg2> ...)
- 戻り値
- コマンドが正常に終了したら T、しなかったらnil
- サンプル
(defun c:SafeCircle () (princ "\n円を描画します。") ; acet-safe-commandを使ってCIRCLEコマンドを実行 ; ユーザーが途中で[Esc]を押しても、このLISPはエラーで止まらない (setq success (acet-safe-command '("._circle" pause pause))) ; 戻り値をチェック (if success ; Tが返ってきた場合(成功) (princ "\n円が作成されました。") ; nilが返ってきた場合(キャンセルまたは失敗) (princ "\nコマンドがキャンセルされました。") ) (princ) ) ; --- 比較用の標準(command)を使った場合のコード --- ; 以下のコマンドを実行し、円を描く途中で[Esc]キーを押すと、 ; LISPプログラム自体がエラーで停止し、"コマンドはキャンセルされました。" ; というメッセージは表示されません。 (defun c:UnsafeCircle () (princ "\n円を描画します。") ; 標準のcommand関数 (command "._circle" pause pause) ; 上の行で[Esc]が押されると、この行以降は実行されない (princ "\nコマンドはキャンセルされました。") (princ) )
関連事項