[Javascript] जावास्क्रिप्ट: क्या सभी त्रुटियों पर क्रोम को तोड़ने का कोई तरीका है?



Answers

मुझे इसे पाने में परेशानी हुई, इसलिए मैं विभिन्न विकल्पों को दिखाते हुए चित्र पोस्ट करता हूं:

क्रोम 58.0.3029.96 [30 मई 2017]

कम से कम क्रोम 38.0.2125.111 [11 दिसंबर 2014] से सच है

टैब Sources : Screenshot for Chrome 50.0.2661.75

जब बटन सक्रिय होता है, तो आप नीचे दिए गए चेकबॉक्स के साथ Pause On Caught Exceptions को हटा सकते हैं:

पिछला संस्करण

क्रोम 32.0.1700.102 [03 feb 2014]

क्रोम 27.0.1453.93 स्थिर

Question

मैं फ़ायरबग की कार्यक्षमता को "सभी त्रुटियों पर तोड़ने" की कार्यक्षमता के लिए देख रहा हूं। स्क्रिप्ट टैब में, क्रोम के पास "सभी अपवादों पर रोक" है, लेकिन यह सभी त्रुटियों को तोड़ने जैसा बिल्कुल नहीं है।

उदाहरण के लिए, निम्न कोड वाले पृष्ठ को लोड करते समय, मैं क्रोम को foo.bar = 42 पंक्ति पर तोड़ना foo.bar = 42 । इसके बजाय, "सभी अपवादों पर रोक" को सक्षम करते समय भी मुझे अपेक्षित परिणाम नहीं मिलते हैं।

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
    <head>
        <script type="text/javascript">

            function doError() {
                foo.bar = 42;
            }

            window.onload = function() {
                try {
                    doError();
                } catch (e) {
                    console.log("Error", e);
                }
            }
        </script>
    </head>
    <body>
    </body>
</html>

आप इस पृष्ठ पर उपरोक्त कोड का प्रयास कर सकते हैं या इस jsFiddle का उपयोग कर jsFiddle




बस किसी भी त्रुटि के बारे में अपवाद फेंक देगा। एकमात्र त्रुटियों के बारे में मैं सोच सकता हूं कि "अपवादों पर रोक" विकल्प के साथ काम नहीं करेगा, सिंटैक्स त्रुटियां हैं, जो किसी भी कोड को निष्पादित करने से पहले होती हैं, इसलिए किसी भी तरह से रोकने के लिए कोई जगह नहीं है और कोई भी कोड नहीं चलाएगा।

जाहिर है, क्रोम अपवाद पर रोक नहीं देगा अगर यह एक कोशिश-पकड़ ब्लॉक के अंदर है। यह केवल बेजोड़ अपवादों पर रोक लगाता है। मैं इसे बदलने के किसी भी तरीके से नहीं जानता।

यदि आपको केवल यह पता होना चाहिए कि अपवाद किस लाइन पर हुआ था (तो अपवाद पुन: उत्पन्न होने पर आप ब्रेकपॉइंट सेट कर सकते हैं), कैच ब्लॉक को दी गई Error ऑब्जेक्ट में एक stack प्रॉपर्टी है जो दिखाती है कि अपवाद कहां हुआ।






Links