zj20190405 发表于 2022-4-30 09:01:13

(defun ini-0 (/ myerror n);;;程序初始化及自定义错误处理函数
(setvar "CMDECHO" 0)
(command-s "undo" "be")
(setq olderror *error*)
(setq *error* myerror)
(setq
    e_lst (mapcar (function (lambda (n) (list 'setvar n (getvar n))))
                  '("autosnap"          "osmode"      "aperture"
                  "hpspace"          "hpassoc"      "mirrtext"
                  "auprec"          "luprec"      "dimzin"
                  "cecolor"          "clayer"
                   )
          )
)
(defun *error* (msg)
    (mapcar 'eval e_lst)
    (if      (not (member
               msg
               '(nil "函数被取消" ";错误:quit / exit abort")
             )
      )
      (princ (strcat ";错误:" msg))
    )
)

)
====================================================================================
(defun ini-1 (e_lst);;;恢复系统变量
(setvar "CMDECHO" 0)
(mapcar 'eval e_lst)
(setq *error* olderror)
(command-s "undo" "e")
)

zj20190405 发表于 2022-4-30 09:03:00

cad890 发表于 2019-5-24 12:46
在开始更改之前,结束更改之后

老哥,这样吗
(defun ini-0 (/ myerror n);;;程序初始化及自定义错误处理函数
(setvar "CMDECHO" 0)
(command-s "undo" "be")
(setq olderror *error*)
(setq *error* myerror)
(setq
    e_lst (mapcar (function (lambda (n) (list 'setvar n (getvar n))))
                  '("autosnap"          "osmode"      "aperture"
                  "hpspace"          "hpassoc"      "mirrtext"
                  "auprec"          "luprec"      "dimzin"
                  "cecolor"          "clayer"
                   )
          )
)
(defun *error* (msg)
    (mapcar 'eval e_lst)
    (if      (not (member
               msg
               '(nil "函数被取消" ";错误:quit / exit abort")
             )
      )
      (princ (strcat ";错误:" msg))
    )
)

)
====================================================================================
(defun ini-1 (e_lst);;;恢复系统变量
(setvar "CMDECHO" 0)
(mapcar 'eval e_lst)
(setq *error* olderror)
(command-s "undo" "e")
)
页: 1 [2]
查看完整版本: Lisp程序设计错误处理程序