LabVIEW編程技巧:如何處理VI程序中錯誤信息

當我們在LabVIEW平臺中寫完程序交給用戶使用時,一般情況下程序能夠很好的運行,但在某些特殊情況下,用戶進行某個操作時,會經常彈出錯誤提示框,報告你的程序出錯誤了,並導致整個程序的退出。如下面一個典型的錯誤提示信息下圖所示:

LabVIEW編程技巧:如何處理VI程序中錯誤信息


這個時候會大大影響用戶的使用體驗,總是招來用戶的各種抱怨。那麼,這個時候我們就會思考,為什麼程序員自己測試時一般不會出現或者很難發現這種錯誤,而到了用戶手中就會經常出現各種莫名其妙的錯誤呢?

答案很簡單,程序員自己寫代碼時,已經形成了固定的思維,你會不自覺的按照固定的流程思路去操作你的軟件,而對於用戶來講,他的操作可能是隨心所欲的,未必按照你想當然認為的流程去操作,這個時候就需要我們在自己的程序中要具備完善的錯誤處理機制。

下面通過一個例子來說一下LabVIEW程序中錯誤處理的簡單方法。

錯誤處理示例說明

做一個最簡單的例子,其功能是獲取某個文件的大小信息並在前面板上進行顯示。

其前面板及程序框圖如下圖所示:

LabVIEW編程技巧:如何處理VI程序中錯誤信息


正常情況下,如在路徑中選擇或者輸入文件名稱“D:\data.txt”,程序正確的獲得了該文件的大小並進行了顯示。

但如果你在路徑控件中輸入一個不存在的文件或者文件名稱的格式不正確時,則會彈出本文開頭時所示的錯誤提示框,並導致整個程序的退出。

錯誤處理方法

上例中使用了“獲取文件大小”函數,該函數的輸入輸出參數信息如下圖所示:

LabVIEW編程技巧:如何處理VI程序中錯誤信息


該函數中,有一個“錯誤輸出”參數,其是一個簇(相當於C語言中的結構體)類型,包含了三個成員變量,分別為“status”、“code”和“source”,指示了該函數在程序運行過程中是否有錯誤,當有錯誤的時候,布爾類型的“status”為真,並給出該錯誤的代碼值和出錯的源信息。

因此,在VI程序中可根據簇中“status”的值來決定是否進行下一步的處理,將代碼修改為如下:

LabVIEW編程技巧:如何處理VI程序中錯誤信息


上面代碼中根據“錯誤輸出”參數“status”的值進行處理,其值為假(不出錯)時顯示文件大小,其值為真(出錯)時給用戶彈出一個友好的提示框,提示文件路徑輸入錯誤,可重新輸入。注意這種情況下與LabVIEW本身彈出的錯誤框提示是不同的,此時整個程序不會導致退出,可作下一步的處理。

當然,也可以直接將“錯誤輸出”參數連接到選擇結構中,LabVIEW會自動處理,這樣更簡單一些,如下圖所示:

LabVIEW編程技巧:如何處理VI程序中錯誤信息


如果你想偷懶的話,你也可以直接將“錯誤輸出”參數連接到一個顯示控件上,當出錯的時候也可以避免彈出錯誤提示框。只是,一般情況下這個顯示控件是不會直接顯示給用戶看的(隱藏或放到顯示區域外),所以此時用戶不知道你的程序是否出錯,只是程序沒有反應而已,所以,這不是一種好的處理方法。

總結

我們使用LabVIEW編寫大型項目程序時,為了程序的健壯性、可靠性等,我們要儘量在程序中提供完善的錯誤處理機制,包括寫自己的子函數時,也應該設計這種處理機制。

如果你覺得這篇文章對你有用的話,收藏+點贊吧。


分享到:


相關文章: