Zeige die Zeile eines Fehlers mit Throw ()<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Hallo,
Ich versuche, einige unvermeidbare Fehler mit Try and Throw zu behandeln. Bei Throw im Index heißt es:
Wurf ("Text")
Funktion
Liefert a Werfen . Wenn Sie einschließen Text Läden werfen Text in einem globalen exception_msg . Ob Text Beginnt mit "!", erzeugt das Werfen eine Fehlermeldung darüber, wo die Ausnahme abgefangen wurde.
Also habe ich versucht, die Fehlerzeile zu bekommen:
try (abcdef;
.
werfen ("! nice error.");
);
show (exception_msg);
Dies scheint nicht wie beabsichtigt zu funktionieren, da es nicht die Zeile anzeigt, die den Fehler verursacht hat, oder eine Zeilennummer angibt. Es klingt wie die Info in exception_msg gespeichert, aber die Skriptausführung wird nach dem Wurf angehalten, sodass ich sie nicht anzeigen kann.
Hat jemand Erfolg damit gehabt, die Leitung zu erhalten, die den Fehler verursacht hat?
Re: Zeige die Zeile eines Fehlers mit Throw ()Ich glaube, ich habe es herausgefunden - der Throw muss in einer Funktion enthalten sein, damit die Skriptausführung außerhalb der Funktion fortgesetzt wird:
doMath = Funktion ({a, b, c}, {Default Local},
:: result = a * b * c;
Versuchen(
abcde;
.
Werfen ("! Schöner Fehler");
);
);
zeige Ergebnis);
show (exception_msg);
und ich bekomme aus dem Protokoll:
exception_msg = {"Name nicht gelöst: abcdef" (1, "abcdef", abcdef)};
Gibt es eine Möglichkeit, eine tatsächliche Leitungsnummer zu erhalten? Es könnte ziemlich unordentlich werden, wenn man herausfindet, wo sich diese Leitung befindet!