这是我常用的错误处理代码!
- ;;;程序开始使用
- (DEFUN SetIErr (/ sv)
- (if (or (= 'LIST (type *Error*))(= 'USUBR (type *Error*)))
- (alert "ERROR :THE LAST (SETiERR) FUNCTION HAS NO (ReErr)!")
- (PROGN
- (SETQ *SVARL* '())
- (FOREACH SV *SYSVARNL*
- (SETQ *SVARL* (CONS (GETVAR SV) *SVARL*))
- )
- (FOREACH SV '("ATTDIA" "ATTREQ" "BLIPMODE" "CMDECHO" "DIMZIN"
- "OSMODE" "ORTHOMODE" "MIRRTEXT")
- (SETVAR SV 0)
- )
-
- (SETVAR "EXPERT" 5)
- (SETVAR "CECOLOR" "BYLAYER")
- (SETVAR "celtype" "BYLAYER")
- (SETVAR "LWDISPLAY" 1)
- (SETVAR "PLINEGEN" 1)
- (setq MyOld*error* *error*)
- (defun *error* (st) (reerr)(princ st))
- )
- )
- )
- ;;;程序结束恢复*Error*,(SetIErr)和(ReErr)必须配套使用
- (defun ReErr ()
- (if (or (= 'LIST (type *error*)) (= 'SUBR (type *error*)) (= 'USUBR (type *error*)))
- (PROGN (MAPCAR 'SETVAR *SYSVARNL* (REVERSE *SVARL*))
- (SETQ *Error* MyOld*error*)
- )
- (ALERT "ERROR : NO (SETIERR)!")
- )
- (PRINC)
- )
|