21.12.2020, 08:08
Beitrag #1
|
|
|
21.12.2020, 10:11
Beitrag #2
|
Martin.Henz
LVF-Team
Beiträge: 426
Registriert seit: Jan 2005
2.5.1 bis 20
1992
kA
74363
Deutschland
|
RE: Fehler abfangen
Hi Steffen,
ich kürze das nicht mit "Think Dataflow" ab. Da ich mir die Frage stelle, was du denn meinen könntest, was in dem Case "INI" mit dem Fehler passiert, führt mich zu etwas ganz Grundsätzlichem:
Was macht ein VI oder eine Funktion, wenn am Eingang ein Fehler in Form eines Error Clusters anliegt? Antwort: Es macht einfach nichts.
Was also tut "Send Notification"? Antwort: Es macht nichts.
Fazit: Du musst irgend etwas tun, damit im Fehlerfall auch irgend etwas passieren kann.
Etwas konkreter: Hänge z.B. den Error Handler einfach hinten an "VISA Open" ran und sende anschließend "EXIT" mittels "Send Notification". So bekommt der Benutzer eine Fehlermeldung und anschließend wird das Programm beendet. Die Leitung des Error Cluster zwischen "VISA Open" und "Send Notification" musst du natürlich weglassen.
|
|
|
21.12.2020, 10:20
(Dieser Beitrag wurde zuletzt bearbeitet: 21.12.2020 10:27 von th13.)
Beitrag #3
|
th13
LVF-Gelegenheitsschreiber
Beiträge: 177
Registriert seit: Oct 2013
2020 SP1
2013
EN
Deutschland
|
RE: Fehler abfangen
Du musst den VISA-Fehler auch behandeln, d.h. prüfen, ob am Fehlerausgang ein Fehler auftritt. Im einfachsten Fall so:
Du kannst auch den Errorcode auswerten und je nachdem verschiedene Meldungen ausgeben.
Ein Tipp noch bzgl. Fehlerhandling: man sollte immer den Originalfehler (hier der VISA-Fehler) anzeigen oder zumindest loggen, das erleichtert das Finden von Fehlerursachen deutlich.
|
|
|
21.12.2020, 11:56
(Dieser Beitrag wurde zuletzt bearbeitet: 21.12.2020 12:00 von Freddy.)
Beitrag #4
|
|
|
21.12.2020, 12:10
Beitrag #5
|
|
|
21.12.2020, 12:15
(Dieser Beitrag wurde zuletzt bearbeitet: 21.12.2020 12:18 von Martin.Henz.)
Beitrag #6
|
Martin.Henz
LVF-Team
Beiträge: 426
Registriert seit: Jan 2005
2.5.1 bis 20
1992
kA
74363
Deutschland
|
RE: Fehler abfangen
Hallo Freddy,
(21.12.2020 11:56 )Freddy schrieb: Die INI Fehlerleitung würde ich nicht ändern, da eine Initialisierung ohne VISA nicht funktioniert.
Lass doch dem Steffen seine Freiheit :-)
Wenn er diesem Ratschlag folgt und das so macht wie unten, dann ist es schlicht und ergreifend falsch.
Nachtrag: Da ist es ja schon (schneller als meine Antwort) ... und es ist falsch den Error Cluster zu verbinden ...
|
|
|
21.12.2020, 12:32
Beitrag #7
|
Martin.Henz
LVF-Team
Beiträge: 426
Registriert seit: Jan 2005
2.5.1 bis 20
1992
kA
74363
Deutschland
|
RE: Fehler abfangen
Hi Steffen,
lass die Verbindung des Error Clusters zu "Send Notofication" im Fehlerfall weg (sonst wird da nichts gesendet).
Und irgendwie ist es vermutlich sinnvoll, dem Anwender mitzuteilen, welcher Fehler aufgetreten ist. Um bei deinem
Ansatz zu bleiben, irgendwie so:
|
|
|
21.12.2020, 13:27
Beitrag #8
|
|
|
21.12.2020, 13:56
(Dieser Beitrag wurde zuletzt bearbeitet: 21.12.2020 14:12 von Martin.Henz.)
Beitrag #9
|
Martin.Henz
LVF-Team
Beiträge: 426
Registriert seit: Jan 2005
2.5.1 bis 20
1992
kA
74363
Deutschland
|
RE: Fehler abfangen
Hallo Steffen,
du machst bei EXIT auch nichts außer, dass zwei von den drei While-Schleifen beendet wird. :-)
Momentan zumindest sollte es doch im Fehlerfall so sein, dass beim Start des Programms festgestellt wird, dass das Gerät nicht vorhanden ist, der Benutzer eine Fehlermeldung bekommt. Anchließend wird das Programm wieder beendet. Du musst dann auch dafür sorgen, dass nach EXIT dein Programm auch tatsächlich vollständig beendet wird.
|
|
|
| |