乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 101|回复: 8

[LISP]错误处理

[复制链接]

57

主题

466

帖子

8

银币

中流砥柱

Rank: 25

铜币
694
发表于 2004-7-3 15:11:00 | 显示全部楼层 |阅读模式
;;;错误函数
(defun NEWERROR        (errmsg)
         (if errmsg                                ;当出现错误时
                         (progn
                                         (command "_.UNDO" "End")                ;编组结束
                                         (princ (strcat "\nError ==>: " errmsg " +++")) ;打印错误
                         )
         )
)
我觉得错误函数没什么用,只是打印出错误而已。还是我没理解好???
回复

使用道具 举报

37

主题

297

帖子

15

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
449
发表于 2004-7-4 10:36:00 | 显示全部楼层
(command "_.UNDO" "End")                ;编组结束
这条就有用啊。不然用户会无法UNDO得更远的。
回复

使用道具 举报

14

主题

270

帖子

9

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
326
发表于 2004-7-4 10:37:00 | 显示全部楼层
不仅仅是输出出错信息呀,你不是也使用了command命令吗,它可以作恢复系统变量设置等工作,实际上,应该具有流程转向控制的作用,如果你的出错原因不会形成致命错误的话,完全可以用错误函数转去执行一个新的例程。
回复

使用道具 举报

57

主题

466

帖子

8

银币

中流砥柱

Rank: 25

铜币
694
发表于 2004-7-5 12:39:00 | 显示全部楼层
那我怎么知道它执行到哪里出错了,是不是要在         
(progn
                                         (command "_.UNDO" "End")                ;编组结束
                                         (princ (strcat "\nError ==>: " errmsg " +++")) ;打印错误
                         )
这中间用 IF 判断了
回复

使用道具 举报

26

主题

3072

帖子

10

银币

社区元老

Rank: 75Rank: 75Rank: 75

铜币
3177
发表于 2004-7-5 13:15:00 | 显示全部楼层
不可预料的错误是要在程序的设计是就避免的,一个完善的程序无论用户怎么操作,都不会出现不可预料的错误,也就是说,发生错误退出时,你肯定知道在哪儿退出的。。。
如,使用getpoint时,按取消,这不用说,肯定知道就是getpoint是出错了,
而如果出现了(sslength ss)当ss不是选择集类型时的错误,当然在使用时并不一定知道,但这个错误是不能让它存在的,你必须在程序中就判断SS是否是选择集,是了一个才来使用SSLENGTH函数。。。等等
另外,错误处理函数不需要判断msg。。。
回复

使用道具 举报

wzh

32

主题

104

帖子

8

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
232
发表于 2004-7-5 21:21:00 | 显示全部楼层
在执行autolisp程序时,在很多情况下按ESC键会中断退出,象这样的错误处理如何确定呢?
回复

使用道具 举报

20

主题

872

帖子

10

银币

中流砥柱

Rank: 25

铜币
952
发表于 2004-7-6 08:08:00 | 显示全部楼层
出错处理函数就是用来处理这个的,其他的交互输入出错可以在程序中进行判断
回复

使用道具 举报

5

主题

66

帖子

8

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
86
发表于 2004-7-8 00:11:00 | 显示全部楼层
进今天回了好多贴了,最后一贴:)
ESC ???
你不是*error*里定义了errmsg吗?
这个东东不仅仅是打印出来看看的,你可以利用它呀.
按了esc还能有几种errmsg呢?
回复

使用道具 举报

57

主题

466

帖子

8

银币

中流砥柱

Rank: 25

铜币
694
发表于 2004-7-8 11:33:00 | 显示全部楼层
多谢大家!
可是我还是搞不清楚,看来得先肯帮助文件了:)
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-8-18 21:23 , Processed in 2.848172 second(s), 70 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表