六 常用程序结构模式

错误处理机制

在实际编程中,通常并不需要为每个函数的错误返回值都加一个错误处理条件结构,而是把判断对错的代码都放在较为底层的子 VI 中

 

 

LabVIEW 自带有此类 VI 的模板;选择 "文件 -> 新建",带错误处理的子 VI" 模板

自己编写错误处理机制时,就必须考虑到哪些代码在出错时依旧需要运行。

可预期的错误

 

 

 

自定义错误

让自己的 VI 传出一个错误,这非常简单,只需自己定义一个错误输出的簇就可以了。

可靠的做法是借助 "编程 -> 对话框与用户界面 -> 错误代码至错误转换"VI,提供给这个 VI 错误代码和错误信息,它就可以输出一个对应的错误簇

也可以使用 5000~9999 和 - 8999~-8000 之间的某个数值,这两段数值是专门留给用户自定义错误代码的。

 

 

 要查看一个 LabVIEW 中某个错误代码是什么含义可以搜索 LabVIEW 帮助文档,或选择菜单项 "帮助 -> 解释错误",在解释错误对话框中输入一个错误代码,它就会给出相应的错误信息。

 

显示错误信息

可自动弹出错误信息的程序

 

 这就是 LabVIEW 的自动错误处理机制

有时候也挺招人烦的。比如,有些错误本来是可以被忽略,不必理睬的。但是如果有对话框弹出,用户就不得不手动去关闭这个对话框。尤其是当程序发布给用户后,我们肯定不愿意最终用户运行程序运行过程中,时不时弹出个错误信息对话框来。

 

 

LabVIEW 中有专门的子 VI 可以完成这个工作:"编程 -> 对话框与用户界面 -> 简易错误处理器"。

 

 最后调用该 VI 即可弹出错误提示框,把错误信息显示出来。(为了防止程序运行过程中不断弹出的错误信息对话框干扰用户的操作。)

虽然方便了调试,但是程序在用户那里运行时也可能会出现不停蹦出错误信息的情况。怎么办?

借助条件禁用结构可以两全其美地解决这一问题。

设置一个专用的条件禁用符号,用于判别程序是在调试阶段还是在发布阶段。比如,用 "DEBUG" 作为条件禁用符号,把它添加到项目设置中(参考禁用结构一节),当它的值为 "True" 时,程序可以随时弹出错误对话框。

 

 

错误合并

把错误传递给后续程序。此种情况下可以使用 "编程 -> 对话框与用户界面 -> 合并错误",把多个错误合并起来再传递给后续的代码。

多数情况下,"合并错误"VI 只保留第一个错误信息;一定需要记录所有的程序运行中的错误信息,可以使用一个数组来记录错误信息,一旦有错误出现,就把它的信息插入这个数组中。

使用移位寄存器来传递错误

 

 

另外一种情况,若某个测试出现异常,并不希望它耽误后续的测试。此时,每次迭代中调用 "运行测试"VI 时,就不能把上一次的错误信息传递给它。在这种情况下,就不能使用移位寄存器;

这里可以使用隧道,把错误值输出循环框。使用索引输出隧道,把每次迭代的错误输出组成一个数组传递出循环,再使用 "合并错误"VI 把错误信息合并起来。

 

 

 

 

 在循环次数为 0 时,也不能丢弃错误信息。所以 "初始化测试" 产生的错误信息也要连接到 "合并错误"VI。

 任何一个测试出现异常,不影响后续的测试

posted @ 2022-10-08 20:25  StudySong  阅读(114)  评论(0)    收藏  举报