Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   try-catch-Fehlerauswertung in JavaScript (https://www.delphipraxis.net/171491-try-catch-fehlerauswertung-javascript.html)

Cicaro 8. Nov 2012 15:53

try-catch-Fehlerauswertung in JavaScript
 
Hallo.

Die große Preisfrage: Wie kommt man an die Zeile, die den Fehler erzeugt hat, in der Scriptdatei ?
Also wscript.exe kann das. Wenn man es nämlich zur Ausführung benutzt und Fehler macht, wird eine sinnvolle Zeile und weniger sinnvolle Spalte angegeben.
Code:
try
{
   fehler();
}
catch (e)
{
   // wie kann ich hier die Zeile mit dem Fehler ausgeben ?
}
Ich benutze wscript.exe oder cscript.exe für JavaScript. Ansonsten würde mich auch gern interessieren, wie man an möglichst viele Informationen über den Fehler kommt.

ele 8. Nov 2012 16:57

AW: try-catch-Fehlerauswertung in JavaScript
 
Es gibt keinen Browserunabhänigen weg das zu tun.
Unter Firefox funktioniert folgendes:

Code:
try
{
   throw new Error("Fehler");
}
catch (e)
{
   alert(e.message + ' auf Zeile ' + e.lineNumber)
}

Phoenix 8. Nov 2012 18:22

AW: try-catch-Fehlerauswertung in JavaScript
 
Zitat:

Zitat von Cicaro (Beitrag 1190378)
Die große Preisfrage: Wie kommt man an die Zeile, die den Fehler erzeugt hat, in der Scriptdatei ?
[...] Ich benutze wscript.exe oder cscript.exe für JavaScript. Ansonsten würde mich auch gern interessieren, wie man an möglichst viele Informationen über den Fehler kommt.

Da gibt es leider keinen Weg. Die ECMAScript-Spezifikation definiert nicht, dass eine Runtime-Umgebung dem Code zusätzliche Informationen über den Fehler, wie z.b. die Zeile in der der Fehler aufgetreten ist, zur Verfügung stellen muss. Siehe hier: http://www.ecma-international.org/ec...5.1/#sec-15.11

Das heisst letzlich, dass Du vielleicht im Firefox als Runtime Glück haben kannst, aber das andere Implementierungen von JavaScript das eben nicht machen müssen. Du müsstest dort dann mal in der Dokumentation zu wscript / cscript nachschauen, ob die irgendwelchen zusätzlichen Informationen innerhalb des ausgeführten Codes bereitstellen. Wage das aber eher zu bezweifeln. Dass der Scripting host die Informationen selber anzeigt heisst halt leider nicht, dass er diese auch dem Script selber geben muss.


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:48 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz