19.05.2009, 12:43
Beitrag #1
|
danielsan
LVF-Grünschnabel
Beiträge: 39
Registriert seit: Mar 2007
2011-SP1
2006
DE
22000
Deutschland
|
Fehlerbehandlung mit Klassifizierung
Hallo zusammen,
ich arbeite schon einige Zeit an einem etwas größeren Projekt. Die Fehlerbehandlung habe ich bisher etwas stiefmütterlich behandelt und möchte sie jetzt effizient integrieren.
Immerhin habe ich alle Funktionen mit Fehlercases ausgerüstet, um (so dachte ich jedenfalls) später die Fehlerbehandlung ohne größeren Aufwand einführen zu können. Das Projekt ist komplett objektorientiert (LVOOP) programmiert.
Leider bin ich mit der in LV vorgesehenen Fehlerbehandlung nicht so ganz glücklich. Tritt nämlich ein Fehler auf, so wird dieser ja jetzt durch alle meine VIs durchgereicht, bis er irgendwo bearbeitet wird.
Ich würde mir aber lieber wünschen, dass nur bestimmte Fehler zu einer Ignoranz des Codes führen (z.B. bei Visa Fehler kann immer noch mit der Datenbank kommuniziert werden). Klar kann man die Fehler nach den Code-Bereichen bewerten, aber diese Bewertung müsste ich ja jetzt in jedem VI nachpflegen.
Durch die Verwendung von OOP gibt es bei mir auch nicht so eine ausgeprägte Verwendung von State-Machines. Es gibt eine für das Hauptprogramm und eine für eine untergeordnete Testroutine. Wenn ich jetzt hier mit einer Fehler Queue arbeite und die Fehler nach jedem Case behandel, werden aber immer zu viele VIs ignoriert. Diese Methode macht doch eh nur Sinn, wenn man für jedes SubVI einen eigenen Case anlegt, oder? Das geht aber mit dem OOP nicht zusammen.
Vielleicht hat ja jemand noch eine gute Idee, sonst muss ich wohl die Fehlerklassifizierung nachpflegen.
|
|
|
19.05.2009, 12:51
Beitrag #2
|
TSC
LVF-Team
Beiträge: 1.882
Registriert seit: Sep 2008
LV 2018 SP1
2008
EN
52379
Deutschland
|
Fehlerbehandlung mit Klassifizierung
Also ich habe ein VI "Fehlerbehandlung.vi". Das hat als eingang einen Fehle rund als Ausgang einen Fehler. Innerhalb des VIs habe ich eine Casestruktur die den ErrorCode auswertet. Bekannte Fehler haben einen eigenen Case und da entscheide ich, was ich mit den Fehlern mache. Üblicherweise wir ddie Ursache behoben, der Fehler in die Logdatei geschrieben und dann der Fehler gelöscht. Kenne ich den Fehler nicht, sprich er hat keinen Case, wird der defaultcase ausgeführt. da wird der fehler bei mir einfach weitergereicht.
Dieses VI habe ich dann auf jeden fall am ende von jedem subvi eingebunden, aber auch so schon mal an allen stellen wo ich fehler erwarte die ich behandeln kann.
LG
Torsten
"Über Fragen, die ich nicht beantworten kann, zerbreche ich mir nicht den Kopf!" ( Konrad Zuse)
|
|
|
| |