前言
通过上一个文章的介绍,我们发现LabVIEW自带的错误管理依旧比较基础,如果需要对错误进行很好的管理,则需要进一步的进行程序编写。用于在程序设计的过程中,为了保证程序的健壮性,我们需要 1.忽略一些不需要的错误 2.对特定的一些错误做额外的处理 3.将一些有可能为以后工作所需要的错误进行记录
上个文章中,小黑学习了Error Ring,并且了解了错误的一些处理,今天小黑带大家看看SEH错误处理工具包的内容。
什么是SEH
SEH的全称是Structured Error Handler (SEH) Library,库提供了一种组织和管理错误的机制。 1.SEH包括一个可配置的Express VI,可帮助处理特定错误; 2.SEH建立了传输错误的通信机制,*错误处理程序的模板; 3.SEH建立了各种支持的VI和实用程序,便于对错误进行集中管理。如何使用SEH
在特定错误容易出现的地方,可以放置Express VI,用于捕获这些错误,在错误最容易出现的地方捕获这些错误有以下几点明显的好处:1.错误捕获的时候接近错误源头,你可以避免由于错误在线程中专递导致最终错误无法辨别。由于LabVIEW中的产生错误的代码可以在很多位置使用而且相同的错误可以在不同的地方产生,如果不对错误的源头记录,往往还需要花费大量的时间去定位错误的位置。2.捕获错误接近错误源头可以有助于错误修正措施的编写。例如:有些错误重复检测的时候,最好的方式是直接检测并且处理。特定错误搜集功能
如下图所示,特定错误收集功能用于捕获指定的错误代码,这里使用Express VI来控制和捕获错误,通过简单的配置即可实现操作。
How To Use
1.将Express VI放置于错误产生的位置






名称 | 说明 | 备注 |
Retry | 确定特定错误处理程序是否应尝试重新执行代码 | 请参阅重试部分 |
Number of Retries | 确定重试代码的次数 | 此选项仅在启用重试时可见 |
Infinite | 表示重试次数没有限制 | 此选项仅在启用重试时可见 |
Call VI | 从内存中调用VI | 请参阅实时错误处理程序部分 |
VI To Call | 确定应该调用哪个VI,键入VI名称 | 参阅调用VI部分 |

名称 | 说明 | 备注 |
Notify | 将错误传送到*错误处理程序 | 参阅错误通信部分 |
Priority | 确定应处理通知的顺序, 较低优先级号码具有较高的优先级,0是最高优先级 | |
Classify | 对通知进行分类。 请注意,此分类仅适用于通知,不适用于错误输出。 | 请参阅分类错误部分 |
Classification | 错误类型的字符串描述。 请注意,在实时版本的库中,字符串必须为四个或更少的字符 | 有关详细信息,请参阅分类错误部分。 |

名称 | 说明 | 备注 |
Clear Error | 清除错误 | |
Convert to Warning | 将错误转换为警告 | |
Classification | 错误类型的字符串描述 | 有关详细信息,请参阅分类错误部分。 |

常规用法
1.忽略错误当需要用户选择一些文件的时候,如果用户取消,则会提示43的错误,通常我们会对这个错误进行处理,所以使用SEH工具包,直接忽略这个目标错误即可


错误可以同时使用Classify Error VI或者使用Express VI来分类









后记SEH工具包的下载地址为: http://www.ni.com/example/31253/en/
null