明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1766|回复: 2

你如何对LISP程序进行强壮性检查?

[复制链接]
发表于 2003-11-5 18:02:00 | 显示全部楼层 |阅读模式
LISP中好多的语句都需要特定类型的数据的。

我经常用到的一个例子就是用ssget得到一个选择集后,对选择集进行循环,会用到sslength函数,如果ssget得到的选择集是空的话,就会出错。我的做法是
(repeat (if ss1 (sslength ss1) 0)
    ....
)

另外在子函数中,对形式参数的类型是否有必要进行检查?如果进行检查,应该在子函数内部检查还是运行子函数前检查。
因为我的子函数用得很普遍,如果每次都要检查的话,可能会影响效率。我的做法一般是不进行检查的。

你们常用到的还有哪些?
"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2003-11-5 18:42:00 | 显示全部楼层
这要看实际情况了,比如说有些参数是经过选择时过滤后的产物,或者计算的结果,这些都是可预知的,一般是不需要检查了,还有些,就是如果参数类型不正确,不会对程序产生影响的。
发表于 2003-11-7 16:37:00 | 显示全部楼层
1. 通常是这样:

  1. (if (setq ss (ssget <Method><FilterLST>))
  2. (progn
  3.   (setq iLength (sslength ss))
  4.   ....
  5. );end progn
  6. ;else
  7. );end if


2. 基本上见楼上meflying的说明,不过在不能确定传入的参数一定符合类型的情况下,最好还是在子程序中的开始就进行检查,如果不满足要求,设返回值为nil
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-27 04:29 , Processed in 0.182027 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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