找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1229|回复: 6

[求助] [求助]:请教关于如何进行错误处理

[复制链接]
发表于 2004-6-9 20:05:06 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
请教高手,如何进行错误处理?
我给lp编的程序也有十几个,减轻了她50%的劳动量,可惜的是我一直不会错误处理,比如程序执行到一半,出现错误或取消,而我的程序开头对某些变量进行更改,程序结尾又改回去,但程序执行一半出现错误后,这些变量的值就和以前不一样了,我该如何解决?请高手指教!


斑竹提示:请新来的网友多看看以前的帖子,你的问题可能已经有人提出并解决!直接有问题请用搜索!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2004-6-10 00:02:06 | 显示全部楼层
定义好错误处理函数 *error* ,程序出错后,系统会自动调用它的。
参考这个:
(defun c:tt ()
  (defun *error* (msg)
    (princ "\n进入错误处理程序.")   
    (setvar "osmode" os)
    (princ "\n捕捉方式已经恢复。")
    (princ)
  )
  (setq os (getvar "osmode"))
  (setvar "osmode" 0)
  (princ "\n物体捕捉已经取消。")
  (while t
    (getstring "\n 按ESC键终止程序:")
  )
  (setvar "osmode" os)
)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1个

财富等级: 恭喜发财

发表于 2004-6-10 09:32:49 | 显示全部楼层
最初由 wkai 发布
[B]定义好错误处理函数 *error* ,程序出错后,系统会自动调用它的。
参考这个:
[/B]

呵呵,这个程序退出后所有cad的错误处理函数都是它啦。应该用内部函数

  1. (defun c:tt ( / err-new set-close set-ini err-old osmode-old)
  2. ;;自定义初始化函数
  3. (defun set-ini()
  4.    (setq osmode-old (getvar "osmode"))
  5. )
  6. ;;自定义错误处理函数
  7. (defun err-new(msg)
  8.     (princ msg)
  9.     ;;若错则调用结束处理函数
  10.     (set-close)
  11. )
  12. ;;自定义结束函数
  13. (defun set-close()
  14.     (setq *error* err-old);_恢复原系统的错误处理函数
  15.    ;
  16.     (setvar "osmode" osmode-old)
  17.     (princ "\n捕捉方式已经恢复。")
  18. )
  19. ;;===============
  20. ;;主程序

  21. ;;将原错误处理函数的程序保存
  22. ;;并用新的自定义错误处理函数程序代替。
  23. (setq err-old *error*
  24.         *error* err-new
  25. )
  26. (set-ini)
  27. ;;下面这句视程序需要而定,也可以放在初始化函数中
  28. (setvar "osmode" 0)
  29. (princ "\n物体捕捉已经取消。")
  30. (while t
  31. (getstring "\n 按ESC键终止程序:")
  32. )
  33. (set-close)
  34. )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-6-10 10:04:35 | 显示全部楼层
netbee 的代码看起来很严谨呀,向你学习。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-6-17 15:54:26 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
两位斑竹辛苦了!!!
像两位斑竹学习在学习!!!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
 楼主| 发表于 2004-6-29 21:44:38 | 显示全部楼层
非常感谢!!!
好人一生平安!!!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-8-18 11:58:10 | 显示全部楼层
将自定义的错误处理函数放在主函数的外部行不行?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2025-9-28 11:34 , Processed in 0.184912 second(s), 46 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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