2011-08-19 12 views
10

प्रोग्रामर पक्ष से, मैं सभी जावास्क्रिप्ट रनटाइम त्रुटि पॉपअप को कैसे दबा सकता हूं?सभी जावास्क्रिप्ट रनटाइम त्रुटियों को दबाने के लिए कैसे करें?

+3

आप अपने पूरे कोड को 'try ... catch' ब्लॉक में लपेटने का प्रयास कर सकते हैं। लेकिन त्रुटियों को ठीक करना बेहतर है;) –

+0

कभी-कभी 'कोशिश करें ... पकड़' का उपयोग करने की संभावना नहीं है, उदाहरण के लिए यदि कुछ बाहरी लाइब्रेरी त्रुटियों को फेंकता है। Window.onerror घटना का उपयोग इस मामले में समाधान है, मेरा उत्तर – Skip

उत्तर

16

सभी जावास्क्रिप्ट त्रुटियों को दबाने के लिए window.onerror ईवेंट लगता है।
यदि इसे यथासंभव जल्दी से बदल दिया गया है (उदा। सिर के ठीक बाद) एक फ़ंक्शन द्वारा जो सत्य लौटाता है - वहां कोई त्रुटि पॉपअप नहीं होगी, जो डिबगिंग के बाद काफी उपयोगी है।

<head> 
<script type="text/javascript"> 
    window.onerror = function(message, url, lineNumber) { 
     // code to execute on an error 
     return true; // prevents browser error messages 
    }; 
</script> 
... 

त्रुटि लॉगिंग के रूप में समझाया here

+1

_ HTMLDocumentEvents4 :: आतंक घटना रन-टाइम त्रुटियों के लिए आग लगती है, लेकिन संकलन त्रुटियों के लिए नहीं। इसके अलावा, स्क्रिप्ट डिबगर्स द्वारा उठाए गए त्रुटि संवाद बॉक्स ** नहीं ** ** [MSDN] से सत्य._ द्वारा वापस दबाए गए हैं (http://msdn.microsoft.com/en-us/library/ff976266 (v = vs.85) .aspx) – Bakudan

+0

यह विधि कोणीय 2.x + ऐप्स के लिए काम नहीं कर रही है - संभवतः कोणीय त्रुटियों को संभालने के कारण। –

1

मैं "@" PHP में की तरह एक त्रुटि को दबाने के लिए एक छोटे से स्क्रिप्ट बनाया है, बहुत संभव है।

यहां एक example है।

var at = function(test) { 
    try { 
     if(typeof test === "function") return test();    
     else return test || null;   
    } catch (e) { 
     return null; 
    } 
}; 
संबंधित मुद्दे