2010-05-18 14 views
7

जो मैं पूरा करने की कोशिश करता हूं वह सभी अनोखे अपवादों को पकड़ने के लिए वैश्विक हैंडलर को पंजीकृत करना है। वेब पर खोज करने से मैं केवल विंडो को इंगित करने वाले लोगों को ढूंढने में कामयाब रहा। आतंक लेकिन यह मेरे लिए चाल नहीं करता है। स्पष्ट रूप से खिड़की। आतंक केवल त्रुटियों पर बुलाया जाता है और अपवादों पर नहीं।किसी भी कोशिश/पकड़-ब्लॉक के बिना जावास्क्रिप्ट में uncaught अपवादों को संभालने के लिए कैसे?

function windowError(message, url, line) { 
     alert(message, url, line); 
    } 
    window.onerror=windowError; 
    throw("uncaught"); 

जाहिर न आया हुआ अपवाद windowError हैंडलर ट्रिगर नहीं करेगा: निम्नलिखित कोड मान लें। (फ़ायरफ़ॉक्स 3.6.3 का उपयोग करना)

कोई सुझाव?

+1

उपर्युक्त कोड क्रोम v12 पर बहुत अच्छा काम करता है। चीयर्स। –

उत्तर

2

जहां तक ​​मुझे पता है कि आपको ऐसा करने के लिए प्रयास/प्रयास ब्लॉक की आवश्यकता होगी। उस बिंदु की तरह, आपको यह जानने की जरूरत है कि किस प्रकार की त्रुटियों को संभालना है।

+0

ने इस पोस्ट को अनचाहे जावास्क्रिप्ट अपवादों को पकड़ने के लिए googling के दौरान पाया। आप किसी भी दिए गए कोड में होने वाले सभी प्रकार के अपवादों को पूर्ववत नहीं कर सकते हैं। window.onerror कम से कम त्रुटि प्रदर्शित करने का एक अच्छा तरीका है। मैं आगे गया हूं और मेरी साइट पर मैं खिड़की में डेटा पोस्ट करता हूं। मेरे सर्वर पर एक वेबमाइंड पर आतंक घटना और ऐप लॉग में त्रुटि लॉग इन की। – Anders

4

त्रुटियाँअपवाद जावास्क्रिप्ट में और वास्तव में, अपने उदाहरण में संदेश मिलता है सतर्क कर दिया (फ़ायरफ़ॉक्स 3.6.3) के रूप में एक ही तरह से फंस गए हैं।

+0

यह काफी विषम है। इसे फ़ायरफ़ॉक्स 3.6.3 के साथ कोई अलर्ट नहीं मिलता है। – Taloncor

+0

मैंने आपके उदाहरण को एक साधारण HTML पृष्ठ पर आजमाया है और यह काम करता है। यह अजीब बात है कि आपके फ़ायरफ़ॉक्स पर 'सतर्क नहीं' है ... क्या आपने किसी अन्य ब्राउज़र पर प्रयास किया है? –

संबंधित मुद्दे