明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: Gu_xl

[【Gu_xl】] 【Gu_xl】Lisp程序设计错误处理的技巧

    [复制链接]
发表于 2014-10-16 19:01:39 | 显示全部楼层

很好的帖子,仔细学习,慢慢琢磨。
发表于 2014-10-19 12:19:56 | 显示全部楼层
向楼主学习!
发表于 2014-11-24 22:56:59 | 显示全部楼层
请教G板,对与独立名称空间VLX中的错误要怎么处理?
定义的*ERROR*不能使用。。。
当函数被取消时 各种不能再初始了呀
发表于 2014-11-24 23:42:40 | 显示全部楼层
(defun c:tt ( / msg)
  (setq msg (vl-catch-all-apply 'fun1))
  (if (vl-catch-all-error-p msg)
    (tt-error (vl-catch-all-error-message msg))
    )
  )

发表于 2014-12-3 16:02:23 | 显示全部楼层
例四中应该没有
(setq        *Function* nil
        *UndoMode* nil
  )
发表于 2014-12-9 00:14:11 | 显示全部楼层
留名,新手必修课之一!
发表于 2015-1-17 14:53:17 | 显示全部楼层

测试了楼主的c:TT1和C:tt2。
把osmode设置为7,然后执行tt1,输入第三点时按esc,程序结束。在命令行输入(getvar "osmode"),命令

行显示为0.
再次把osmode设置为7,然后执行tt2,输入第三点时按esc,程序结束。在命令行输入(getvar "osmode"),

命令行仍然显示为0.
证明楼主tt2那段定义error的子程序没起作用。
2.       (defun *error* (msg)
3.        (setvar "cmdecho" cmdecho) ;_ 恢复cmdecho系统变量
4.        (setvar "osmode" osmode) ;_ 恢复osmode系统变量
5.        (princ "error: ")
6.        (princ msg)      ;_ 打印错误信息
7.        (princ)         
8.        )
发表于 2015-1-19 19:26:53 来自手机 | 显示全部楼层
必学技术.就是出错处理
发表于 2015-1-20 13:46:41 | 显示全部楼层
这个需要仔细学习,我老有某个系统变量楞是复原不了,衰~
发表于 2015-2-8 19:39:32 | 显示全部楼层
正需要的东西。。顶
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-12-18 23:39 , Processed in 0.179873 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表