Frage

Beim Fangen / Umgang mit Ausnahmen in JavaScript, wie kann ich bestimmen, was der Call-Stack war, als die Ausnahme aufgetreten ist? (Und auch, wenn möglich, was die Zeilennummer war)

try
{
    // etc...
}
catch (ex)
{
    // At this point here I want to be able to print out a detailed exception 
    // message, complete with call stack, and if possible line numbers.
}
War es hilfreich?

Lösung

Jeder Browser behandelt dies anders, so gibt es keine universelle Art und Weise, es zu tun. Dieser Blog-Eintrag einige gute Code hat einen Stack-Trace für die meisten unterstützten Browser zu entleeren. Ich glaube nicht, dass es ein guter Weg ist, um die Zeilennummer zu erhalten.

Wenn Sie debuggen eine Funktion insbesondere suchen, Firebug hat einen guten Stack-Trace-Funktion ( vis console.trace ()).

Andere Tipps

Hier finden Sie aktuelle dieser .

Ein Weg, um die verfügbaren Informationen zu analysieren:

try 
{ 
    doInit(); 
} catch(err) 
{ 
    var vDebug = ""; 
    for (var prop in err) 
    {  
       vDebug += "property: "+ prop+ " value: ["+ err[prop]+ "]\n"; 
    } 
    vDebug += "toString(): " + " value: [" + err.toString() + "]"; 
    status.rawValue = vDebug; 
}

Ich habe entdeckt, dass in JavaScript unter IE läuft es nicht möglich ist, einen Stack-Trace an dem Punkt zu erfassen, dass eine Ausnahme gefangen wird. Nach dieser PDF die einzige Möglichkeit, einen Stack-Trace in IE zu bekommen wenn Sie ist nicht die Ausnahme behandeln.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top