Als C#-Entwickler bin ich an folgenden Stil der Ausnahmebehandlung gewöhnt:
try
{
throw SomeException("hahahaha!");
}
catch (Exception ex)
{
Log(ex.ToString());
}
Ergebnis
------
SomeNamespace.SomeException: hahahaha!
at ConsoleApplication1.Main() in ConsoleApplication1\Program.cs:line 27
Es ist wirklich einfach und sagt mir dennoch alles, was ich über die Ausnahme wissen muss und wo sie aufgetreten ist.
Wie erreiche ich das Äquivalent in JavaScript, wo das Ausnahmeobjekt selbst nur ein String sein könnte? Ich möchte wirklich in der Lage sein, die genaue Codezeile zu kennen, an der die Ausnahme aufgetreten ist. Allerdings protokolliert der folgende Code überhaupt nichts Nützliches:
try
{
var WshShell = new ActiveXObject("WScript.Shell");
return WshShell.RegRead("HKEY_LOCAL_MACHINE\\Some\\Invalid\\Location");
}
catch (ex)
{
Log("Ausnahme abgefangen: " + ex);
}
Ergebnis
------
Ausnahme abgefangen: [object Error]
BEARBEITEN (erneut): Nur um es klarzustellen, dies ist für interne Anwendung, die intensiv JavaScript verwendet. Ich suche nach einem Weg, nützliche Informationen aus JavaScript-Fehlern zu extrahieren, die im Produktionssystem auftreten können - ich habe bereits einen Protokollierungsmechanismus, möchte nur einen Weg finden, einen sinnvollen String zum Protokollieren zu erhalten.