明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3154|回复: 4

第四章 在 Visual LISP 中调试代码(三)自动匹配 书签 转至行 错误捕获

[复制链接]
发表于 2012-10-7 11:29 | 显示全部楼层 |阅读模式
自动匹配
自动匹配特性允许你在相匹配的通配符基础上搜索函数、属性和方法,并在IDE中列表框中返回他们一个列表。通过该列表,你可以复制并粘贴到你的代码窗口中,或执行在线帮助查找以学习该项能做什么及怎么用。有很多方法可以调用这个特性,其中之一是在某些代码上右击并从弹出菜单中选择自动匹配(如下图示)。或你可以在视图工具栏中选择自动匹配按钮。

  
图4-7 自动匹配弹出菜单及匹配结果

如你在上图的例子中看到的,一个搜索“vla-get-”的自动匹配会在结果窗口中出现很多相匹配的项。你可通过在代码窗口中键入更多的字符来缩小搜索范围,例如“vla-get-active”就只是找到那些以相同字符串值开头的项。

你也可以通过选择左上的按钮(工具提示显示“自动匹配选项”),并在编辑框中键入你对搜索条件的更改来在结果窗口中修改自动匹配搜索。这个表单中的其它选项允许你指定大小写匹配、仅按前缀和小写转换。“过滤值”按钮在过滤值表单上显示更多的选项。


图4-8 自动匹配过滤器值选项

举例说,你可以限制你搜索到的项目,如内置的函数、外部定义的函数(如由ObjectARX应用程序定义的函数Exrsubrs)以及null或非null值。“过滤标志”按钮显示一个搜索过滤表单使搜索限制在一定的特征内。例如那些已经被保护的或那些已经输出到AutoCAD变量空间中的。


图4-9 自动匹配过滤器标识选项

书签
书签并不是必需的调试工具,但它对于迅速定位到代码的特定部位非常有用。这是非常真实的情况,当你在一个单一文件中使用大量的代码时,你很难在代码中跳到一个特定的点上。你插入的书签在该行前面显示为圆角方形的固定绿色符号。

要插入书签,将光标放在需要加入书签的那行上并按ALT+.(英文句号),或选择搜索->书签->切换书签。要移除书签,就把光标放在书签那一行并按ALT+.,同样也可以选择搜索->书签->切换书签。要想删除给定文件中的所有书签,就选择搜索->书签->清除所有书签。

提示!虽然Visual LISP不允许你通过名称跳转到书签,你可以通过下一个/前一个的方式在它们之间移动。要想从一个书签跳到下一个书签,按CTRL+.(英文句号)。要移动到前一个书签,按CTRL+,(英文逗号)或不断按CTRL+.,直到你的重复循环所有的书签。

转至行
书签是不太实用,但你也可以通过数字跳到你想要去的那一行代码中。按CTRL+G就可以显示“转至行”对话框,输入行的数字并按回车就可以到那一行。


图4-10 转至行对话框

错误捕获
最后,如果没有错误捕获,没有哪个调试方法可以帮你实现目标。什么是错误捕获?它只是一个捕获错误的过程,它可以诊断出错误的类型,并由此执行纠正措施。这是一个非常有效的方法,并能制作出更好的代码。比那些让错误使你的程序崩溃并在屏幕上显示出一个难看的和神秘的错误信息让使用者迷惑的结果来得好得多了。

尤其是ActiveX,在出现错误信息时,出现的信息并不友好。例如,在Visual LISP中操作中由ActiveX产生的公用错误信息如下所示:
错误:ActiveX错误:未提供详细描述。

这对于用户来说是什么意思呢?或者说,这对所有人来说是什么意思呢?很少有人知道。然而,联系你的代码的上下文,你可能在尝试用ADO或JET连接ACCESS数据库。在你准备生成连续的点上,你应该在代码周围放置一个错误捕获并试一试它能否捕捉到这个错误。如果捕捉到错误,接下来确定为什么错误,然后你可以检查错误条件,并显示一个有意义的信息,帮助用户指出错误的原因,节省更多时间。

如何在你的代码周围放置错误捕获?你可以用由Visual LISP提供的有关捕获方面函数,检查和处理由ActiveX对象产生的错误。




该贴已经同步到 明经通道的微博

本帖子中包含更多资源

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

x
明经网友  发表于 2012-10-7 16:22
老大功力太深厚了,今天找到了英文版。一看,脑袋大了!
回复 支持 反对

使用道具

发表于 2012-10-7 16:24 | 显示全部楼层
忘记登录了,但回复也能成功!
发表于 2015-8-11 10:00 | 显示全部楼层
新人学习中
发表于 2023-4-7 11:31 | 显示全部楼层
错误处理一直都感觉比较抽象   
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-4-27 11:38 , Processed in 0.750754 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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