2009-10-15 17 views
5

Questo è praticamente correlato a IE perché IE è l'ambiente che sto usando per testarlo, ma voglio sapere se è possibile influenzare la pertinenza delle proprietà degli oggetti di errore quando si lancia un errore. Si consideri il seguente javascript:Errori di lancio in Javascript con rilevanza di oggetto errore

function MyClass (Arg1, Arg2) // Line 5 of my.js 
{ 
    if (typeof Arg1 != "string") 
     throw new Error("Invalid argument passed for MyClass"); 
    // Do some other stuff here 
} 

Più in basso il codice avete

var myvar = new MyClass(100, "Hello"); // Line 3201 of my.js 

Così il sopra sarebbe genera un errore, ma l'errore riportato nelle informazioni di debug avrebbe mostrato l'errore di essere gettato in linea 9 di my.js anziché della riga 3201. È possibile modificare questo metodo utilizzando i metodi standard?

risposta

2

Quello che stai cercando è una traccia di stack per l'errore. Non ci sono standard per questo, ma la maggior parte dei browser fornisce alcuni mezzi di scoperta. Facendo una ricerca rapida viene fornito con questo esempio js stack trace.

+0

Grazie per la risposta, ho esaminando traccia di stack senza un debugger e trovato un legame molto utile http://eriwen.com/javascript/js-stack-trace/. Costruisco Windows Desktop Gadgets (costruito su IE) e piuttosto che utilizzare Visual Studio per il debug di solito gestisco solo window.onerror e avviso con il messaggio di riga/errore, così posso andare direttamente nel codice - è abbastanza facile e veloce che modo, ma posso vedere come vedere lo stack potrebbe essere ancora più utile. –

+0

Appena realizzato il tuo link era lo stesso - whoops :) –

+0

Contrassegnato come risposta perché era il primo. Grazie :) –

2

In firefox è possibile utilizzare la proprietà stack quando si rileva l'errore. In altri browser è possibile utilizzare la proprietà message.

Date un'occhiata a questo link su come prendere il stacktrace.

+0

Ho trovato questo link in precedenza ed è piuttosto interessante, grazie. –

Problemi correlati