Hallo Ich verwende derzeit IBM Spss, und ich frage mich, ob es eine Möglichkeit gibt, wenn der Code eine Ausnahme auslöst, um die Codezeile zu erhalten, wo die Ausnahme aufgetreten ist ? Ich bin in der Lage, die Zeilennummer zu erhalten gibt es eine Möglichkeit, den Stapel der Zeilen, die ausgeführt wurden, zuzugreifen und diese Informationen von dort abrufen? Irgendwelche Ideen wären toll Vielen Dank im Voraus!Spss (mrScriptBasic) Fehlerbehandlung Code erhalten, bei dem Fehler aufgetreten ist
Beispiel:
Dim x, y, z
On Error Goto ErrorHandler
x = 30
y = 0
z = x/y 'would like to grab this code since this is where the error occurred
Exit
ErrorHandler:
debug.Log(Err.Description + _
" error occurred on line number " + _
CText(Err.LineNumber))
Vielen Dank für Ihre Antwort @JKP Ich dachte über den Block und das Abfangen der Ausnahme, aber für das, was ich versuche zu tun, müsste ich den tatsächlichen Code erhalten, wo der Fehler aufgetreten ist. Du meintest, dies könnte mit Macro-Erweiterung möglich sein, beziehst du dich darauf, meinen eigenen Stack zu erstellen und den Überblick zu behalten? Könnten Sie mir bitte mehr Informationen geben? – paul590
Wenn Sie keine Makros haben, genügt es in einfachen Fällen, nur ein Array von Befehlen zu führen und sie einzeln auszuführen. Wenn Sie jedoch INSERT- oder INCLUDE-Befehle im Stream haben, würden Sie das INSERT/INCLUDE abrufen anstatt den Inhalt der Datei. Sie müssten den Inhalt dieser Dateien abfangen und lesen und die Befehle analysieren. Nicht einfach. – JKP
Mit Makros können Sie SET MPRINT ON ausführen und die Befehle von der Journaldatei abkratzen. Das lässt mich denken, dass es vielleicht die beste Strategie ist, im Falle eines Fehlers das Ende der Journaldatei zu betrachten. Die Journaldatei zeichnet die gesamte aktuelle Syntax auf, vorausgesetzt, das Journaling ist aktiviert, und die Datei wird nach jedem Befehl auf den Datenträger geschrieben, sodass sie immer aktuell ist. Hier sehen Sie, wie diese Inhalte im Fehlerfall aussehen könnten: – JKP