Produkt: | Elvis |
Stand: | 2003-09-17 |
Symptome
Fehlerinformationen zu Ihren Berechnungen im globalen Script verursachen ca. 40 Byte Speicherverlust.
Ursache
Fehler im globalen Scrip können in der Logdatei erkannt werden. Dass bei der Ausführung des globalen Skripts ab und zu einmal Fehler auftreten, ist erstmal nicht weiter schlimm, aber Basic schreibt jedesmal Informationen über den Fehler in den Speicher. Diese Informationen werden leider nicht automatisch wieder freigegeben (ca. 40 Byte pro Fehler).
Für Datenpunktberechnungen, wo ja aus der angegebenen Formel sowieso erst noch zur Laufzeit eine „richtige“ Basic-Funktion erzeugt wird, fügt Elvis 2.1 entsprechenden Code ein, um die Informationen freizugeben. Im globalen Skript funktioniert das nicht, da hier ja die komplette Funktion von Ihnen geschrieben wird.
Lösung
Sie können eine entsprechende Fehlerbehandlung leicht selbst ergänzen.
Fügen Sie am Anfang der Funktion OnDatapointChanged bzw. OnInit folgenden Code (Download hier) ein:
On Error Goto ErrorHandler
If False Then ErrorHandler:
Print "Error in OnDatapointChanged: ", Err.Number, Err.Description
Err.Clear
Exit Sub
End If
Im Falle eines Fehlers in der Funktion wird die Sprungmarke ErrorHandler angesprungen, die die Informationen in die Logdatei schreibt, die Fehlerinformationen freigibt und die Funktion abbricht. Das „If False Then“ dient dazu, dass der Fehlercode im Normalfall nicht ausgeführt wird.