Obsługa błędów, refaktoryzacja

Obsługa błędów

W LabVIEW zarówno błędy jak i ostrzeżenia są przekazywane w formie klastra, który składa się z trzech elementów:

  • status - wartość logiczna, która przyjmuje wartość TRUE w przypadku błędu. Ostrzeżenia mają status FALSE.
  • code - 32-bit signed integer.
  • source - string, opis pomagający zidentyfikować źródło błędu.

 Ostrzeżenia posiadają: status=FALSE oraz kod błędu różny od 0.

Korzystanie z klastra błędów jest istotnym elementem profesjonalnych aplikacji. Pamiętaj aby przekazywać klaster błędów pomiędzy funkcjami, które posiadają terminale error in/error out. Natomiast, pomiędzy kolejnymi iteracjami pętli for/while przekazuj klaster błędów korzystając z rejestru przesuwnego. Jeśli równolegle wywołujesz funkcje, które korzystają z klastra błędów, pamiętaj je połączyć korzystając z funkcji merge errors. Czasami aplikacja może zwrócić nieprawidłową wartość a LabVIEW nie zidentyfikuje to jako błąd np. dzielenie przez zero. Wtedy można zdefiniować własny błąd i dodać go do klastra błędów. Aby poinformować użytkownika o błędzie można skorzystać z okienek dialogowych (przeznaczonych do obsługi błędów lub zdefiniowanych samemu). Takie okienka są szczególnie istotne gdy aplikacja będzie udostępniana innym jako plik wykonywalny (exe). Przy odtwarzaniu pliku wynikowego użytkownik nie ma dostępu do listy błędów (Error List).      


Gotowe funkcje do wyświetlania błędów są niezwykle przydatne. Jednak często chcielibyśmy przechwycić błąd i zapytać użytkownika co zrobić dalej: powtórzyć daną operacje czy może zamknąć program. Do tego przydają się dialog box.

One button dialog


Two buttons dialog

Three buttons dialog






Definiowanie własnego kodu błędu

W LabVIEW istnieje możliwość dodania własnych kodów błędu z zakresów:

  • (-8999;-8000)
  • (5000, 9999)
  • (500 000, 599 999)

Pozostałe wartości kodów są zarezerwowane przez inne funkcje. Dokładna dokumentacja kodów błędów jest dostępna na http://www.ni.com/pdf/manuals/321551a.pdf



Poniżej przedstawiono przykładowy program, który odczytuje temperaturę z czujnika, wyświetla ją na wykresie oraz zapisuje do pliku. Dodano tutaj własny błąd związany z problemem odczytu temperatury o kodzie 5000. Ponadto przechwycono błąd związany z podaniem nieprawidłowej ścieżki do pliku (kod 43). Komunikację z użytkownikiem rozwiązano korzystając z two button dialog.




You have completed 100% of the lesson
100%