' schrieb:@TSchAC
Mich würde mal interessieren wie du deine Fehlerbehandlung bei den kritischen Fällen gestaltest. Schickst du einen Notifier an eine While-Schleife, die nur für die Fehlerbehandlung zuständig ist und dann gestartet wird, wenn ein Notifier gesendet wird?
Ich habe bei meinem Projekt ein ähnliches Problem. Mir schwebt da eine Klassifizierung der Fehler vor. Dazu wollte ich einen Fehlercluster mit einem String (für die Fehlerquelle) und der Fehlerklasse zu einem weiteren Cluster bündeln und diesen dann in einer Whileschleife auswerten.
Okay also ich versuchs mal irgendwie in Worte zu fassen. Das ganze ist natürlich ein ziemlich komplexes Thema. Bei mir sind Fehler unterteilt in kritisch und unkritisch.
Zunächst di unkritischen Fehler. Diese Fehler sind eher als Warnung zu verstehen. Sobald ein solcher Fehler auftritt, wird er behandelt und gelöscht. Unkritische Fehler haben keinen Einfluss auf das System, daher muss das Programm nicht beendet werden. Die behandlung dieser Fehler sieht meist so aus, dass ein vermerk in der logdatei hinterlegt wird, der zuständige versuchsleiter per mail informiert wird, gegebenfalls ein flag gesetzt wird um diesen fehler in zukunft zu vermeiden (z.b. fehlerhaftes thermoelement wird bei messung ignoriert).
Kritische Fehler dagegen sind die Fehler, die nicht ohne folgen gelöscht und ignoriert werden können. Dazu gehören Dateizugriffsfehler, systemfehler oder wie vorher schon mal erwähnt hardware gefährdende Fehler. Da in diesen Fällen ein fortfahren das Programms zu großen Problemen (Datenverlust, defekte Hardware, falsche Daten) führen kann wird das programm gestoppt bzw unterbrochen. Da unterscheidet sich allerdings auch wieder einiges. Manche fehler lassen sich durch einwirken des benutzers direkt beseitigen (falsche Pfadangaben, volle Laufwerke usw.) andere erfordern mehr aufwand. Da wird also dann der kritische Fehler bis zum Ende des Programms durchgeschleust. Da in meinen VIs jede aktion mit Fehler ein und ausgang versehen ist, werden nur noch Variablenwerte weiter gereicht. das ist in jedem fall unkritisch. durch das durchschleusen des fehlers bis ans ende des programms ist sichergestellt, dass das programm ordnungsgemäß beendet wird. Es werden alle schleifen beendet und das logfile bzw die noch im speicher befindlichen daten werden gesichert. dann is schluss. natürlich wird noch versucht, den fehler per mail/sms bildschirmpopup und ähnlichen dingen bekannt zu machen. je nach fehler ist das allerdings uach nciht möglcih (internetverbindungen reißen auch mal ab).
Für die Fehlerbehandlung am ende habe ich auch ein eigenes VI. Natürlich mit Fehler eingang und Fehler ausgang!
Ich hoffe das war einigermaßen verständlich.
LG
Torsten