例五是一段程序出错函数与Undo处理的示例。 ************************************************ ;;例五 (defun
newerr (s) ;出错函数 (if s
(progn (term_dialog) ;使用对话框时使用
(if oldvar (setvar ... oldvar)) ;系统变量恢复 (if
olderr (setq *error* olderr)) ;出错函数恢复 (command "_.undo"
"_e") ;Undo编组结束 ) )
(princ) )
(defun c:my(/ ...)
;主程序(主函数) (setvar "cmdecho" 0) ;取消命令回显提示
(command "_.undo" "_BE") ;Undo编组开始 (setq olderr
*error* *error* newerr) ;调用自定义出错函数 (setq oldvar (getvar
...)) ;保存相关系统变量 (setvar
... ;设置系统变量
... ;程序段 ... (setvar ...
oldvar) ;恢复系统变量 (setq *error*
olderr) ;恢复出错函数 (command "_.undo"
"_E") ;结束Undo命令编组
(princ)
;取消程序返回值 ) ************************************************ |