找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 841|回复: 7

[求助] 错误处理代码

[复制链接]

已领礼包: 4个

财富等级: 恭喜发财

发表于 2021-2-3 11:38:06 | 显示全部楼层 |阅读模式

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

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

×
在CAD自带的编辑器visual lisp里面可以还原捕捉

这段错误处理代码在飞诗编辑器里面为什么还原不了对象捕捉

这段错误处理代码在飞诗编辑器里面为什么还原不了对象捕捉
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 13个

财富等级: 恭喜发财

发表于 2021-2-3 16:08:24 | 显示全部楼层
尹思颖 发表于 2021-2-3 15:44
谢谢您耐心赐教,

我用猫老师的编辑器Everedit也能正常调试这段代码。估计是飞诗编辑器返回的错误信息 ...

其实,写多了LISP,你都不用调试什么的,最多代码中间加几个打印语句就够了
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 1 反对 0

使用道具 举报

已领礼包: 19个

财富等级: 恭喜发财

发表于 2021-2-3 13:10:08 | 显示全部楼层
编辑器不就是写代码吗?
怎么编辑器里面还原不了捕捉?
你在命令行运行时候,正常吗?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 4个

财富等级: 恭喜发财

 楼主| 发表于 2021-2-3 13:40:47 | 显示全部楼层
Lisphk 发表于 2021-2-3 13:10
编辑器不就是写代码吗?
怎么编辑器里面还原不了捕捉?
你在命令行运行时候,正常吗?

就是用飞诗编辑器运行代码到第6行的时候 让用户指定点  我没指定点  按esc退出了  这个时候应该要还原的系统变量而没被还原

同样的我把这段代码粘贴到visual lisp里面运行到第6行的时候  不指定点按esc退出 这个时候 对象捕捉被还原了  

就是不知道两个编辑器为什么会有这个区别
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 19个

财富等级: 恭喜发财

发表于 2021-2-3 14:36:55 | 显示全部楼层
尹思颖 发表于 2021-2-3 13:40
就是用飞诗编辑器运行代码到第6行的时候 让用户指定点  我没指定点  按esc退出了  这个时候应该要还原的 ...

你是说在编辑器里面调试吗?
如果你说的,那就是飞诗的不完善吧

你把代码正常在命令行执行,不是正常吗?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 4个

财富等级: 恭喜发财

 楼主| 发表于 2021-2-3 15:44:06 | 显示全部楼层
Lisphk 发表于 2021-2-3 14:36
你是说在编辑器里面调试吗?
如果你说的,那就是飞诗的不完善吧

谢谢您耐心赐教,

我用猫老师的编辑器Everedit也能正常调试这段代码。估计是飞诗编辑器返回的错误信息(msg)后面加了代码被中断的位置的原因。例如 “函数被取消 位置→ 行:2 列:13” ,

别的编辑器调试时错误信息(msg)就是“函数被取消”

点评

其实,写多了LISP,你都不用调试什么的,最多代码中间加几个打印语句就够了  详情 回复 发表于 2021-2-3 16:08
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 756个

财富等级: 财运亨通

发表于 2021-2-4 08:38:02 | 显示全部楼层
我也是一直没闹明白异常处理,以为每个命令里面都要加一个异常函数。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 4个

财富等级: 恭喜发财

 楼主| 发表于 2021-2-4 08:55:34 | 显示全部楼层
hh_lj007 发表于 2021-2-4 08:38
我也是一直没闹明白异常处理,以为每个命令里面都要加一个异常函数。

重定义一下 *error* 函数  当程序中断时跳出程序的同时还原被修改过的系统变量  

还有一种是vl-catch-all-apply 函数用在预判好会出错的位置 例如(vl-catch-all-apply 'function list)
function表示会出错的函数 list表示function函数的参数 参数要用表的形式 例如(setq err (vl-catch-all-apply '/ '(50 0)))
这时会返回一个错误对象#<%catch-all-apply-error%>
再用vl-catch-all-error-message来返回错误信息 (vl-catch-all-error-message err)
这时返回“除数为0”

另外还有vl-catch-all-error-p  apply 这两个函数可以顺便了解一下
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-15 08:38 , Processed in 0.187761 second(s), 47 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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