2013-05-31 9 views
5

Uncaught ReferenceError को ठीक करने का सामान्य समाधान क्या है।असीमित संदर्भ त्रुटि

मैं डीबगिंग कोड उत्पादन में सुनिश्चित करने के लिए एक फ़ंक्शन बना रहा हूं। लेकिन ऐसे मामले हो सकते हैं जहां एक चर मौजूद नहीं है लेकिन डिबगिंग कोड अभी भी मौजूद है। ऐसे मामले में इसे जेएस को रोकना नहीं चाहिए।

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

'डीबग (टाइपो xyz ===" अपरिभाषित "? अपरिभाषित: xyz); शायद? – Ian

+0

आप एक मैक्र का उपयोग कर सकते हैं ... ओह, रुको। –

+3

आप अपने डिबगिंग कोड को उत्पादन में क्यों चलाना चाहते हैं? –

उत्तर

2

आपको उत्पादन में डीबग कोड चलाने से बचना चाहिए।

सर्वश्रेष्ठ निर्माण प्रक्रिया है जो इसे हटा देती है, लेकिन आपके डीबग कॉल को लपेटने वाला एक साधारण ध्वज भी काम करता है।

window.DEBUG = true; 

//... 

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

यह जगह पर अविकसित चर के परीक्षण के मुकाबले क्लीनर होगा।

आखिरकार, डिबगिंग का हिस्सा अविकसित चर के लिए आकस्मिक पहुंच ढूंढ रहा है। तो जब डीबगिंग करते हैं, तो हमें उन संदर्भकर्ताओं को देखना चाहिए ताकि हम उन्हें ठीक कर सकें।

0
try{ 
if(Debug){ 
    debug(data,code) 
} 
} 
catch{ 
// swallow or do whatever you want 
} 
संबंधित मुद्दे