2013-05-31 26 views
5

Che cosa è una soluzione generale per risolvere Uncaught ReferenceError.Fix Uncaught ReferenceError

Sto creando una funzione per garantire che il codice di debug entri in produzione. Ma ci possono essere casi in cui una variabile non esiste ma esiste ancora il codice di debug. In tal caso non dovrebbe arrestare il js.

function debug(data, type){ 
    if(type == 'alert' && mode !== 'production'){ 
     alert(data); 
    } 
    else if(type == 'halt' && mode !== 'production'){ 
     debugger; 
    } 
    else{ 
     console.debug(data); 
    } 
} 

debug(xyz) //xyz doesn't exists 
+8

'debug (typeof xyz ===" undefined "? Undefined: xyz);' forse? – Ian

+0

Potresti usare un macr ... oh, aspetta. –

+3

Perché si desidera eseguire il codice di debug in produzione? –

risposta

2

Si dovrebbe evitare di eseguire il codice di debug in produzione.

La cosa migliore è avere un processo di compilazione che lo rimuove, ma funziona anche un semplice flag che avvolge le chiamate di debug.

window.DEBUG = true; 

//... 

if (DEBUG) { 
    debug(xyz) //xyz doesn't exist... and it won't matter when DEBUG === false 
} 

Questo sarà più pulito di test per le variabili non dichiarate in tutto il luogo.

Dopo tutto, parte del debug sta trovando l'accesso accidentale alle variabili non dichiarate. Quindi, durante il debug, dovremmo vedere questi ReferenceErrors in modo che possiamo correggerli.

0
try{ 
if(Debug){ 
    debug(data,code) 
} 
} 
catch{ 
// swallow or do whatever you want 
} 
Problemi correlati