' schrieb:Mein Errorhandling sieht zur Zeit so aus:
Ich gehe mal davon aus, du meinst das allgemeine Verfahren. Also Statemachine etc. in While-Schleife. Nach jedem State, also nach jeder Arbeit, wie immer die aussieht und wie immer die auch initialisiert wird, wird eine Fehlerüberwachung/Auswertung/Anzeige etc. gemacht. Es ist zu beachten, dass in so einem Case ein Programm stehen kann, das selbst aus sehr vielen Programmebenen (SubVIs) bestehen kann. Deren Error-Cluster würden alle bis hier oben durchgeführt.
Zitat:Wollte nun fragen ob es OK ist
Datenflusstechnisch gesehen spricht nichts dagegen. Auch vom Ablauf her würde man so vorgehen: Arbeiten, Fehler tritt auf, Fehler wird gehandelt (wie auch immer LogFile, Anzeige etc).
Zitat:und wie ihr es macht.
Ich mach das aber anders.
Meine Programme sind nicht so strukturiert, dass ich am Ende einer Arbeit auf Fehler prüfe. Ich prüfe erst auf Fehler und mach dann die Arbeit. Beispiel Dateiename. Der Anwender hat z.B. einen Pfad als Zielpfad für Messwertfiles definiert. Es gibt jetzt zwei Möglichkeiten: Ich schreib die Messwertdatei und lasse quasi online prüfen, ob der Pfad existiert. Existiert der Pfad nicht, bekomm ich einen Fehler (hoffe ich doch). Oder ich überprüfe zuerst ob der Pfad existiert. Wenn nicht, fang ich erst gar nicht mit der Arbeit an.
Mit diesem Verfahren fange ich theoretisch alle vorhersehbaren (praktisch die vorhergesehenen) Fehler ab. Beliebte derartige Fehler sind z.B. ungültige Benutzereingaben oder Dateninkonsistenzen im allgemeinen. Normalerweise treten jetzt also gar keine Fehler mehr auf.
Bleiben also nur noch die unvorhersehbaren Fehler übrig. Solche Fehler sind z.B. "Handle ist plötzlich verschwunden". Eigentlich muss man einen derartigen Fehler aber gar nicht direkt auswerten - der Overhead hierfür steht in keinem Verhältnis zur Auftret-Häufigkeit dieses Fehlers.
In textbasierter Programmierung gehe ich im übrigen genauso vor. Das Verfahren Error-Auswertung nach der Arbeit würde einem try/except-Konstrukt entsprechen. Sowas verwende ich aber normalerweise nicht.
So. Was sagt ihr denn dazu?