Quando viene lanciata un'eccezione JavaScript in IE 8, come posso visualizzare la traccia dello stack?Come posso ottenere la traccia dello stack per un'eccezione JavaScript in IE 8?
Ad esempio, il seguente codice di jQuery cattura un'eccezione e la riavvia. Debug in Visual Studio (2012), le pause di esecuzione come eccezione ('e') è catturato da jQuery, ma non posso per la vita di me vedere l'analisi dello stack di dove l'eccezione proviene da:
// resolve with given context and args
resolveWith: function(context, args) {
if (!cancelled && !fired && !firing) {
firing = 1;
try {
while(callbacks[ 0 ]) {
callbacks.shift().apply(context, args);
}
}
// We have to add a catch block for
// IE prior to 8 or else the finally
// block will never get executed
catch (e) {
throw e;
}
finally {
fired = [ context, args ];
firing = 0;
}
}
return this;
}
Ho provato la libreria stacktrace.js, ma sembra ignorare l'eccezione quando il browser è IE 8, semplicemente tornando a produrre la traccia dello stack del frame corrente.
EDIT:
Come si può vedere dalla schermata qui sotto, l'eccezione non ha proprietà relative allo stack:
Non è possibile inserire un punto di interruzione nel blocco 'catch' e analizzare l'oggetto Errore * prima che * venga nuovamente generato? –
@ ŠimeVidas L'oggetto Error non ha traccia di stack, vedi. Ha un messaggio e un numero, ma nessuna traccia. – aknuds1
In Internet Explorer * Errore * gli oggetti hanno una proprietà '.stack': http://jsfiddle.net/2HDBf/ (Di fatto, quella proprietà è cross-browser.) –