明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1606|回复: 5

[求助]如何避免程序出错时退出?

[复制链接]
发表于 2008-8-2 12:39 | 显示全部楼层 |阅读模式
使用lisp语言编写程序时,如果遇到某句话执行失败(或出错),有时程序会直接退出。特别当执行批处理时,如果程序总是退出那将非常头疼。本想让电脑执行一晚上,早上发现竟然我走后10分钟程序就退出了,狂晕!!
不知大家遇到这种情况是如何解决的?
另:lisp能否捕捉错误,当执行批处理时,如果出错可以写个日志,继续往下执行而不是退出?

发表于 2008-8-2 12:43 | 显示全部楼层

用VBA吧

 楼主| 发表于 2008-8-2 13:02 | 显示全部楼层
谢谢楼上的朋友。
vba确实可以通过 on error 捕捉错误,但是偶用lisp写好的功能不想再翻译成vba了,还有其他办法嘛?
发表于 2008-8-2 13:28 | 显示全部楼层

用vl-catch-all-apply捕捉错误

如有一函数abc,则调用时

(setq retu(vl-catch-all-apply 'abc (...abc的参数表)))

捕捉错误

(if (VL-CATCH-ALL-ERROR-P retu);_如果上面的函数调用返回值是错误

....

)

再如

(setq retu(vl-catch-all-apply 'getpoint (list "\n指定点: "))


(if (VL-CATCH-ALL-ERROR-P retu)
  (princ "\n错误")
  (princ retu))

记得加载(vl-load-com)

 楼主| 发表于 2008-8-2 17:44 | 显示全部楼层
多谢caiqs兄热心回复。
我发现程序是调用cad本身命令时出错的,如(command "break" en p0 p1);
不知这种情况能否捕捉错误?
 楼主| 发表于 2008-8-4 12:14 | 显示全部楼层
希望龙坛主给指点下。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-11 23:17 , Processed in 0.155532 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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