2013-05-31 12 views
5

修正する一般的な解決策は何ですかUncaught ReferenceErrorです。未知の参照エラーを修正しました

私は、デバッグコードを確実に運用するための機能を作成しています。しかし、変数が存在しないのにデバッグコードが存在する場合があります。そのような場合、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);' maybe? – Ian

+0

あなたはmacrを使うことができます...ああ、待ってください。 –

+3

なぜ、本番環境でデバッグコードを実行したいのですか? –

答えて

2

実稼働環境でデバッグコードを実行しないでください。

ベストは、それを削除するビルドプロセスを持つことですが、デバッグ呼び出しをラップする単純なフラグも機能します。

window.DEBUG = true; 

//... 

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

これは、場所の宣言されていない変数のテストよりもクリーンです。

結局のところ、デバッグの一部が、宣言されていない変数への誤ったアクセスを検出しています。だから、デバッグするときに、それらのReferenceErrorsを見て、修正できるようにする必要があります。

0
try{ 
if(Debug){ 
    debug(data,code) 
} 
} 
catch{ 
// swallow or do whatever you want 
} 
関連する問題