सबसे अनुभवी डेवलपर भी पहली बार में कोड को सही तरीके से नहीं लिख पाता. इसलिए, समस्या हल करना डेवलपमेंट प्रोसेस का एक अहम हिस्सा है. इस सेक्शन में, हम कुछ ऐसे तरीकों के बारे में बताएंगे जिनसे आपको अपनी स्क्रिप्ट में मौजूद गड़बड़ियों का पता लगाने, उन्हें समझने, और उन्हें डीबग करने में मदद मिल सकती है.
गड़बड़ी के मैसेज
जब आपकी स्क्रिप्ट में कोई गड़बड़ी होती है, तो गड़बड़ी का मैसेज दिखता है. इस मैसेज के साथ, समस्या हल करने के लिए इस्तेमाल किया गया लाइन नंबर भी दिया जाता है. इस तरह से दो तरह की बुनियादी गड़बड़ियां दिखती हैं: सिंटैक्स की गड़बड़ियां और रनटाइम की गड़बड़ियां.
सिंटैक्स की गड़बड़ियां
सिंटैक्स से जुड़ी गड़बड़ियां, JavaScript के व्याकरण के मुताबिक कोड न लिखने की वजह से होती हैं. इन गड़बड़ियों का पता तब चलता है, जब स्क्रिप्ट को सेव करने की कोशिश की जाती है. उदाहरण के लिए, इस कोड स्निपेट में सिंटैक्स से जुड़ी गड़बड़ी है:
function emailDataRow(rowNumber) {
var sheet = SpreadsheetApp.getActiveSheet();
var data = sheet.getDataRange().getValues();
var rowData = data[rowNumber-1].join(" ";
MailApp.sendEmail('john@example.com',
'Data in row ' + rowNumber,
rowData);
}
यहां सिंटैक्स से जुड़ी समस्या यह है कि चौथी लाइन के आखिर में )
वर्ण मौजूद नहीं है. स्क्रिप्ट सेव करने की कोशिश करने पर, आपको यह गड़बड़ी दिखेगी:
आर्ग्युमेंट की सूची के बाद ) मौजूद नहीं है. (चौथी लाइन)
इस तरह की गड़बड़ियों को ठीक करना आम तौर पर आसान होता है. ऐसा इसलिए, क्योंकि ये गड़बड़ियां तुरंत मिल जाती हैं और इनकी वजहें भी सामान्य होती हैं. सिंटैक्स से जुड़ी गड़बड़ियों वाली फ़ाइल को सेव नहीं किया जा सकता. इसका मतलब है कि आपके प्रोजेक्ट में सिर्फ़ मान्य कोड सेव किया जाता है.
रनटाइम से जुड़ी गड़बड़ियां
इन गड़बड़ियों की वजह, किसी फ़ंक्शन या क्लास का गलत तरीके से इस्तेमाल करना है. इनका पता सिर्फ़ तब लगाया जा सकता है, जब स्क्रिप्ट को चलाया गया हो. उदाहरण के लिए, इस कोड से रनटाइम गड़बड़ी होती है:
function emailDataRow(rowNumber) {
var sheet = SpreadsheetApp.getActiveSheet();
var data = sheet.getDataRange().getValues();
var rowData = data[rowNumber-1].join(" ");
MailApp.sendEmail('john',
'Data in row ' + rowNumber,
rowData);
}
कोड को सही तरीके से फ़ॉर्मैट किया गया है. हालांकि, MailApp.sendEmail
को कॉल करते समय, ईमेल पते के लिए "john" वैल्यू पास की जा रही है. यह मान्य ईमेल पता नहीं है. इसलिए, स्क्रिप्ट चलाने पर यह गड़बड़ी दिखती है:
अमान्य ईमेल पता: john (लाइन 5)
इन गड़बड़ियों को ठीक करना इसलिए मुश्किल होता है, क्योंकि अक्सर फ़ंक्शन में पास किया जा रहा डेटा, कोड में नहीं लिखा जाता. इसके बजाय, इसे स्प्रेडशीट, फ़ॉर्म या किसी अन्य बाहरी डेटा सोर्स से लिया जाता है. नीचे दी गई डीबग करने की तकनीकों का इस्तेमाल करके, इन गड़बड़ियों की वजह का पता लगाया जा सकता है.
आम तौर पर होने वाली गड़बड़ियां
यहां सामान्य गड़बड़ियों और उनकी वजहों की सूची दी गई है.
सेवा का कई बार अनुरोध किया गया: <action name>
इस गड़बड़ी का मतलब है कि आपने किसी कार्रवाई के लिए, रोज़ाना की तय सीमा पार कर ली है. उदाहरण के लिए, अगर एक दिन में बहुत ज़्यादा ईमेल भेजे जाते हैं, तो आपको यह गड़बड़ी दिख सकती है. उपभोक्ता, डोमेन, और प्रीमियर खातों के लिए, कोटा अलग-अलग लेवल पर सेट किए जाते हैं. Google, बिना किसी सूचना के इनमें कभी भी बदलाव कर सकता है. Apps Script के कोटे से जुड़े दस्तावेज़ में, अलग-अलग कार्रवाइयों के लिए कोटे की सीमाएं देखी जा सकती हैं.
सर्वर उपलब्ध नहीं है. या सर्वर में गड़बड़ी हुई है. कृपया फिर से कोशिश करें.
इन गड़बड़ियों की कुछ संभावित वजहें यहां दी गई हैं:
- Google का कोई सर्वर या सिस्टम कुछ समय के लिए उपलब्ध नहीं है. कुछ देर इंतज़ार करें और स्क्रिप्ट को फिर से चलाने की कोशिश करें.
- आपकी स्क्रिप्ट में ऐसी गड़बड़ी है जिसके लिए कोई गड़बड़ी का मैसेज नहीं है. अपनी स्क्रिप्ट को डीबग करके देखें कि क्या समस्या का पता लगाया जा सकता है.
- Google Apps Script में एक बग है जिसकी वजह से यह गड़बड़ी हो रही है. गड़बड़ी की रिपोर्ट खोजने और सबमिट करने के निर्देशों के लिए, गड़बड़ियां देखें. नया बग फ़ाइल करने से पहले, खोजें कि क्या दूसरों ने पहले ही इसकी शिकायत की है.
यह कार्रवाई करने के लिए, अनुमति देना ज़रूरी है.
इस गड़बड़ी से पता चलता है कि स्क्रिप्ट को चलाने के लिए ज़रूरी अनुमति नहीं है. जब स्क्रिप्ट को स्क्रिप्ट एडिटर में या कस्टम मेन्यू आइटम से चलाया जाता है, तब उपयोगकर्ता को अनुमति देने का डायलॉग बॉक्स दिखता है. हालांकि, जब किसी स्क्रिप्ट को Google Sites पेज में एम्बेड किए गए ट्रिगर से चलाया जाता है या उसे सेवा के तौर पर चलाया जाता है, तो डायलॉग बॉक्स नहीं दिखाया जा सकता. इसलिए, यह गड़बड़ी दिखती है.
स्क्रिप्ट को अनुमति देने के लिए, स्क्रिप्ट एडिटर खोलें और कोई भी फ़ंक्शन चलाएं. आपको अनुमति देने के लिए एक प्रॉम्प्ट दिखेगा, ताकि स्क्रिप्ट प्रोजेक्ट को अनुमति दी जा सके. अगर स्क्रिप्ट में नई अनधिकृत सेवाएं शामिल हैं, तो आपको स्क्रिप्ट को फिर से अनुमति देनी होगी.
यह गड़बड़ी अक्सर उन ट्रिगर की वजह से होती है जो उपयोगकर्ता के अनुमति देने से पहले ही चालू हो जाते हैं या जिनकी अनुमति समयसीमा खत्म हो चुकी है. अगर आपके पास स्क्रिप्ट प्रोजेक्ट का ऐक्सेस नहीं है (उदाहरण के लिए, गड़बड़ी किसी ऐसे ऐड-ऑन की वजह से हो रही है जिसका इस्तेमाल किया जा रहा है), तो आम तौर पर ऐड-ऑन का फिर से इस्तेमाल करके स्क्रिप्ट को अनुमति दी जा सकती है. अगर कोई ट्रिगर लगातार चालू रहता है और इस गड़बड़ी की वजह बनता है, तो यहां दिया गया तरीका अपनाकर ट्रिगर हटाए जा सकते हैं:
- Apps Script प्रोजेक्ट की बाईं ओर, ट्रिगर पर क्लिक करें.
- आपको जिस ट्रिगर को हटाना है उसकी दाईं ओर, ज़्यादा > ट्रिगर मिटाएं पर क्लिक करें.
समस्या पैदा करने वाले ऐड-ऑन ट्रिगर को हटाने के लिए, ऐड-ऑन को अनइंस्टॉल करें.
अनुमति देने की ज़्यादा बारीकी से कंट्रोल की जा सकने वाली सेटिंग की वजह से भी ये गड़बड़ियां हो सकती हैं. अगर स्क्रिप्ट को ट्रिगर से नहीं चलाया जाता है, तो Apps Script, उपयोगकर्ता से उन अनुमतियों का अनुरोध अपने-आप करेगी जो मौजूद नहीं हैं. ट्रिगर के एक्ज़ीक्यूशन को इस गड़बड़ी से बचाने के लिए, अनुमति के स्कोप वाला पेज देखें.
ऐक्सेस नहीं दिया गया: DriveApp या डोमेन की नीति के तहत, तीसरे पक्ष के Drive ऐप्लिकेशन बंद कर दिए गए हैं
Google Workspace डोमेन के एडमिन के पास, अपने डोमेन के लिए Drive API को बंद करने का विकल्प होता है. इससे उनके डोमेन के उपयोगकर्ता, Google Drive ऐप्लिकेशन को इंस्टॉल और इस्तेमाल नहीं कर पाते. इस सेटिंग से, उपयोगकर्ता उन Apps Script ऐड-ऑन का इस्तेमाल नहीं कर पाएंगे जो Drive सेवा या Drive की ऐडवांस सेवा का इस्तेमाल करते हैं. भले ही, एडमिन के Drive API बंद करने से पहले स्क्रिप्ट को अनुमति दी गई हो.
हालांकि, अगर Drive सेवा का इस्तेमाल करने वाले किसी ऐड-ऑन या वेब ऐप्लिकेशन को पूरे डोमेन में इंस्टॉल करने के लिए पब्लिश किया जाता है और एडमिन उसे डोमेन के कुछ या सभी उपयोगकर्ताओं के लिए इंस्टॉल करता है, तो उन उपयोगकर्ताओं के लिए स्क्रिप्ट फ़ंक्शन काम करते हैं. भले ही, डोमेन में Drive API बंद हो.
स्क्रिप्ट के पास, सक्रिय उपयोगकर्ता की पहचान पाने की अनुमति नहीं है.
इससे पता चलता है कि स्क्रिप्ट के लिए, सक्रिय उपयोगकर्ता की पहचान और ईमेल उपलब्ध नहीं है. यह चेतावनी, Session.getActiveUser()
को कॉल करने की वजह से मिली है.
अगर स्क्रिप्ट, AuthMode.FULL
के अलावा किसी अन्य ऑथराइज़ेशन मोड में चल रही है, तो Session.getEffectiveUser()
को कॉल करने पर भी यह गड़बड़ी हो सकती है.
अगर इस चेतावनी का सिग्नल मिलता है, तो इसके बाद User.getEmail()
को किए गए कॉल सिर्फ़ "" दिखाते हैं.
इस चेतावनी से जुड़ी समस्या को हल करने के कई तरीके हैं. ये तरीके, स्क्रिप्ट को चलाने के लिए इस्तेमाल किए जा रहे अनुमति मोड पर निर्भर करते हैं. ऑथराइज़ेशन मोड, e
इवेंट पैरामीटर की authMode
प्रॉपर्टी के तौर पर, ट्रिगर किए गए फ़ंक्शन में दिखता है.
AuthMode.FULL
में, इसके बजायSession.getEffectiveUser()
का इस्तेमाल करें.AuthMode.LIMITED
में, पक्का करें कि मालिक ने स्क्रिप्ट को अनुमति दी हो.- अनुमति देने के अन्य तरीकों में, इनमें से किसी भी तरीके का इस्तेमाल न करें.
- अगर आप Google Workspace के ग्राहक हैं और आपको इंस्टॉल किए जा सकने वाले ट्रिगर से यह चेतावनी हाल ही में मिली है, तो पक्का करें कि ट्रिगर आपके संगठन में किसी उपयोगकर्ता के तौर पर चल रहा हो.
लाइब्रेरी मौजूद नहीं है
अगर आपने अपनी स्क्रिप्ट में कोई लोकप्रिय लाइब्रेरी जोड़ी है, तो आपको गड़बड़ी का मैसेज मिल सकता है. इसमें बताया जाएगा कि लाइब्रेरी मौजूद नहीं है. भले ही, लाइब्रेरी को आपकी स्क्रिप्ट के लिए ज़रूरी कॉम्पोनेंट के तौर पर लिस्ट किया गया हो. ऐसा इसलिए हो सकता है, क्योंकि एक ही समय पर कई लोग लाइब्रेरी को ऐक्सेस कर रहे हों. इस गड़बड़ी से बचने के लिए, इनमें से कोई एक तरीका आज़माएं:
- लाइब्रेरी के कोड को अपनी स्क्रिप्ट में कॉपी करके चिपकाएं. इसके बाद, लाइब्रेरी की डिपेंडेंसी हटाएं.
- लाइब्रेरी स्क्रिप्ट को कॉपी करें और इसे अपने खाते से लाइब्रेरी के तौर पर डिप्लॉय करें. पक्का करें कि आपने अपनी ओरिजनल स्क्रिप्ट में, डिपेंडेंसी को सार्वजनिक लाइब्रेरी के बजाय नई लाइब्रेरी में अपडेट किया हो.
लाइब्रेरी वर्शन मौजूद न होने या मिटाए गए वर्शन पर डिप्लॉयमेंट की वजह से गड़बड़ी हुई. गड़बड़ी का कोड Not_Found
इस गड़बड़ी के मैसेज का मतलब इनमें से कोई एक है:
- स्क्रिप्ट के डिप्लॉय किए गए वर्शन को मिटा दिया गया है. अपनी स्क्रिप्ट के डिप्लॉय किए गए वर्शन को अपडेट करने के लिए, वर्शन वाले डिप्लॉयमेंट में बदलाव करना लेख पढ़ें.
- स्क्रिप्ट में इस्तेमाल की गई लाइब्रेरी का वर्शन मिटा दिया गया है. यह देखने के लिए कि कौनसी लाइब्रेरी मौजूद नहीं है, लाइब्रेरी के नाम के बगल में, > नए टैब में खोलें पर क्लिक करें. लाइब्रेरी मौजूद न होने पर, गड़बड़ी का मैसेज दिखता है. जिस लाइब्रेरी को अपडेट करना है उसे ढूंढने के बाद, इनमें से कोई एक कार्रवाई करें:
- किसी दूसरे वर्शन का इस्तेमाल करने के लिए, लाइब्रेरी को अपडेट करें. लाइब्रेरी अपडेट करना लेख पढ़ें.
- मिटाई गई लाइब्रेरी को अपने स्क्रिप्ट प्रोजेक्ट और कोड से हटाएं. लाइब्रेरी हटाना लेख पढ़ें.
ज़्यादा
- आपकी स्क्रिप्ट जिस लाइब्रेरी का इस्तेमाल करती है उसकी स्क्रिप्ट में ऐसी लाइब्रेरी शामिल है जो हटाए गए वर्शन का इस्तेमाल करती है. इनमें से कोई एक कार्रवाई करें:
- अगर आपके पास उस लाइब्रेरी में बदलाव करने का ऐक्सेस है जिसका इस्तेमाल आपकी स्क्रिप्ट करती है, तो उस स्क्रिप्ट में मौजूद सेकंडरी लाइब्रेरी को मौजूदा वर्शन में अपडेट करें.
- किसी दूसरे वर्शन का इस्तेमाल करने के लिए, लाइब्रेरी को अपडेट करें. लाइब्रेरी अपडेट करना लेख पढ़ें.
- अपनी स्क्रिप्ट प्रोजेक्ट और कोड से लाइब्रेरी हटाएं. लाइब्रेरी हटाना लेख पढ़ें.
गड़बड़ी 400: ऐडवांस सेवा के साथ Google Chat API को कॉल करते समय invalid_scope
अगर आपको गड़बड़ी के मैसेज Some requested scopes cannot be shown
के साथ Error 400: invalid_scope
दिखता है, तो इसका मतलब है कि आपने Apps Script प्रोजेक्ट की appsscript.json
फ़ाइल में कोई भी अनुमति का दायरा तय नहीं किया है. ज़्यादातर मामलों में, Apps Script अपने-आप यह तय कर लेता है कि किसी स्क्रिप्ट को किन स्कोप की ज़रूरत है. हालांकि, Chat की ऐडवांस सेवा का इस्तेमाल करते समय, आपको उन अनुमति स्कोप को मैन्युअल तरीके से जोड़ना होगा जिनका इस्तेमाल आपकी स्क्रिप्ट करती है. इन्हें आपको अपने Apps Script प्रोजेक्ट की मेनिफ़ेस्ट फ़ाइल में जोड़ना होगा. एक्सप्लिसिट स्कोप सेट करना लेख पढ़ें.
इस गड़बड़ी को ठीक करने के लिए, Apps Script प्रोजेक्ट की appsscript.json
फ़ाइल में, अनुमति के सही स्कोप जोड़ें. इन्हें oauthScopes
ऐरे के हिस्से के तौर पर जोड़ें. उदाहरण के लिए, spaces.messages.create
तरीके को कॉल करने के लिए, यह कोड जोड़ें:
"oauthScopes": [
"https://www.googleapis.com/auth/chat.messages.create"
]
आपके एडमिन ने, <URL> के लिए UrlFetch सेवा इस्तेमाल करने की अनुमति नहीं दी है
Google Workspace एडमिन, Admin console में जाकर अनुमति वाली सूची को चालू कर सकते हैं. इससे यह कंट्रोल किया जा सकता है कि Apps Script के ज़रिए, किन बाहरी डोमेन को ऐक्सेस किया जा सकता है.
इस गड़बड़ी को ठीक करने के लिए, अपने एडमिन से संपर्क करें. उनसे यूआरएल को अनुमति वाली सूची में जोड़ने के लिए कहें.
डीबग करना
ऐसा ज़रूरी नहीं है कि हर गलती के लिए, गड़बड़ी का मैसेज दिखे. ऐसी गड़बड़ी भी हो सकती है जिसमें कोड तकनीकी तौर पर सही हो और उसे एक्ज़ीक्यूट किया जा सकता हो, लेकिन नतीजे आपकी उम्मीद के मुताबिक न हों. यहां ऐसी स्थितियों को मैनेज करने के कुछ तरीके दिए गए हैं. साथ ही, ऐसी स्क्रिप्ट की जांच करने के बारे में भी बताया गया है जो आपकी उम्मीद के मुताबिक काम नहीं कर रही है.
लॉग इन हो रहा है
डीबग करते समय, स्क्रिप्ट प्रोजेक्ट के चलने के दौरान जानकारी रिकॉर्ड करना अक्सर मददगार होता है. Google Apps Script में, जानकारी को लॉग करने के दो तरीके हैं: Cloud Logging सेवा और Logger और Console सेवाएं. ये दोनों सेवाएं, Apps Script एडिटर में पहले से मौजूद होती हैं.
ज़्यादा जानकारी के लिए, लॉगिंग गाइड देखें.
रिपोर्ट करते समय गड़बड़ी हुई
रनटाइम की गड़बड़ियों की वजह से होने वाली अपवादों को, Google Cloud Error Reporting सेवा का इस्तेमाल करके अपने-आप रिकॉर्ड किया जाता है. इस सेवा की मदद से, स्क्रिप्ट प्रोजेक्ट से मिले अपवाद वाले मैसेज को खोजा और फ़िल्टर किया जा सकता है.
Error Reporting को ऐक्सेस करने के लिए, Google Cloud Platform Console में क्लाउड लॉग और गड़बड़ी की रिपोर्ट देखना लेख पढ़ें.
कार्यान्वयन
जब भी कोई स्क्रिप्ट चलाई जाती है, तो Apps Script उसके एक्ज़ीक्यूशन का रिकॉर्ड बनाता है. इसमें क्लाउड लॉग भी शामिल होते हैं. इन रिकॉर्ड से यह समझने में मदद मिलती है कि आपकी स्क्रिप्ट ने कौन-कौनसी कार्रवाइयां की हैं.
Apps Script प्रोजेक्ट में अपनी स्क्रिप्ट के एक्ज़ीक्यूशन देखने के लिए, बाईं ओर मौजूद एक्ज़ीक्यूशन
पर क्लिक करें.Apps Script की सेवा की स्थिति की जांच करना
हालांकि, ऐसा बहुत कम होता है, लेकिन कभी-कभी Google Workspace की कुछ सेवाओं (जैसे कि Gmail या Drive) में कुछ समय के लिए समस्याएं आ जाती हैं. इससे सेवाएं बंद हो सकती हैं. ऐसा होने पर, इन सेवाओं के साथ इंटरैक्ट करने वाले Apps Script प्रोजेक्ट, उम्मीद के मुताबिक काम नहीं कर सकते.
Google Workspace स्थिति डैशबोर्ड पर जाकर, यह देखा जा सकता है कि Google Workspace की किसी सेवा में रुकावट तो नहीं आई है. अगर फ़िलहाल कोई समस्या आ रही है, तो समस्या ठीक होने का इंतज़ार करें. इसके अलावा, Google Workspace सहायता केंद्र या Google Workspace की मौजूदा समस्याएं से जुड़े दस्तावेज़ में जाकर ज़्यादा मदद पाएं.
डीबगर और ब्रेकपॉइंट का इस्तेमाल करना
अपनी स्क्रिप्ट में मौजूद समस्याओं का पता लगाने के लिए, इसे डीबग मोड में चलाया जा सकता है. डीबग मोड में चलाने पर, स्क्रिप्ट ब्रेकपॉइंट पर रुक जाती है. ब्रेकपॉइंट, आपकी स्क्रिप्ट में हाइलाइट की गई वह लाइन होती है जिसमें आपको लगता है कि कोई समस्या हो सकती है. जब कोई स्क्रिप्ट रोक दी जाती है, तो उस समय हर वैरिएबल की वैल्यू दिखती है. इससे आपको स्क्रिप्ट के अंदरूनी काम करने के तरीके की जांच करने में मदद मिलती है. इसके लिए, आपको कई लॉगिंग स्टेटमेंट जोड़ने की ज़रूरत नहीं होती.
ब्रेकपॉइंट जोड़ना
ब्रेकपॉइंट जोड़ने के लिए, उस लाइन नंबर पर कर्सर घुमाएं जिसमें आपको ब्रेकपॉइंट जोड़ना है. लाइन नंबर की बाईं ओर मौजूद सर्कल पर क्लिक करें. यहां दी गई इमेज में, स्क्रिप्ट में जोड़े गए ब्रेकपॉइंट का उदाहरण दिखाया गया है:
डीबग मोड में स्क्रिप्ट चलाना
स्क्रिप्ट को डीबग मोड में चलाने के लिए, एडिटर में सबसे ऊपर मौजूद डीबग करें पर क्लिक करें.
ब्रेकपॉइंट वाली लाइन को चलाने से पहले स्क्रिप्ट रुक जाती है और डीबग करने से जुड़ी जानकारी की टेबल दिखाती है. इस टेबल का इस्तेमाल करके, पैरामीटर की वैल्यू और ऑब्जेक्ट में सेव की गई जानकारी जैसे डेटा की जांच की जा सकती है.
स्क्रिप्ट को चलाने के तरीके को कंट्रोल करने के लिए, डीबगर पैनल में सबसे ऊपर मौजूद "स्टेप इन", "स्टेप ओवर", और "स्टेप आउट" बटन का इस्तेमाल करें. इनकी मदद से, स्क्रिप्ट को एक बार में एक लाइन पर चलाया जा सकता है. साथ ही, यह देखा जा सकता है कि समय के साथ वैल्यू में क्या बदलाव होते हैं.
गड़बड़ी: मौजूदा लाइन का सोर्स कोड उपलब्ध नहीं है
यह गड़बड़ी तब दिखती है, जब चालू डिबगिंग फ़ाइल उपलब्ध नहीं होती.
Google Apps Script, स्क्रिप्ट एडिटर में डाइनैमिक तरीके से जनरेट की गई JavaScript (JS) स्क्रिप्ट दिखाने की सुविधा नहीं देता. जैसे, eval()
और new Function()
का इस्तेमाल करके जनरेट की गई स्क्रिप्ट. ये स्क्रिप्ट, V8 इंजन में बनाई और एक्ज़ीक्यूट की जाती हैं. हालांकि, एडिटर में इन्हें अलग-अलग फ़ाइलों के तौर पर नहीं दिखाया जाता.
इन स्क्रिप्ट में स्टेप-इन करने पर, आपको यह गड़बड़ी दिखेगी.
उदाहरण के लिए, यहां दिया गया कोड देखें:
function myFunction() {
eval('a=2');
}
eval()
को कॉल करने पर, इसके आर्ग्युमेंट को JS कोड माना जाता है. साथ ही, यह V8 इंजन में डाइनैमिक तरीके से बनाई गई स्क्रिप्ट के तौर पर काम करता है. अगर eval()
में स्टेप-इन किया जाता है, तो यह गड़बड़ी दिखती है. अगर स्क्रिप्ट में //# sourceURL
टिप्पणी शामिल है, तो कॉल स्टैक में उसका नाम दिखता है. ऐसा न करने पर, इसे बिना नाम वाली एंट्री के तौर पर दिखाया जाता है.
गड़बड़ी का मैसेज मिलने के बावजूद, डीबग करने का सेशन चालू रहता है और एक्ज़ीक्यूशन जारी रखा जा सकता है. आगे बढ़ने के लिए, स्टेप इन, स्टेप आउट या फिर से शुरू करने का तरीका अपनाएं. हालांकि, जब तक स्क्रिप्ट डाइनैमिक स्क्रिप्ट के दायरे में रहती है, तब तक यह गड़बड़ी दिखती रहती है. डाइनैमिक स्क्रिप्ट से बाहर निकलने के बाद, डीबग करने की प्रोसेस बिना इस गड़बड़ी के जारी रहती है.
एक से ज़्यादा Google खातों में लॉग इन करने से जुड़ी समस्याएं
एक ही समय पर, एक से ज़्यादा Google खातों में लॉग इन करने से, आपको ऐड-ऑन और वेब ऐप्लिकेशन ऐक्सेस करने में समस्या आ सकती है. मल्टी-लॉगिन या एक ही समय पर, एक से ज़्यादा Google खातों में लॉग इन करने पर, Apps Script, ऐड-ऑन या वेब ऐप्लिकेशन का इस्तेमाल नहीं किया जा सकता.
एक से ज़्यादा खातों में लॉग इन करके Apps Script एडिटर खोलने पर, Google आपको वह खाता चुनने के लिए कहता है जिसका इस्तेमाल करके आपको आगे बढ़ना है.
अगर वेब ऐप्लिकेशन या ऐड-ऑन खोलने पर, मल्टी-लॉगिन से जुड़ी समस्याएं आ रही हैं, तो इनमें से कोई एक तरीका आज़माएं:
- अपने सभी Google खातों से लॉग आउट करें. इसके बाद, सिर्फ़ उस खाते में लॉग इन करें जिसमें वह ऐड-ऑन या वेब ऐप्लिकेशन मौजूद है जिसे आपको ऐक्सेस करना है.
- Google Chrome में एक गुप्त विंडो या अन्य निजी ब्राउज़िंग विंडो खोलें. इसके बाद, उस Google खाते में लॉग इन करें जिसमें वह ऐड-ऑन या वेब ऐप्लिकेशन मौजूद है जिसका आपको इस्तेमाल करना है.
सहायता पाना
ऊपर दिए गए टूल और तकनीकों का इस्तेमाल करके किसी समस्या को डीबग करने से, कई तरह की समस्याओं को हल किया जा सकता है. हालांकि, ऐसी समस्याएं भी हो सकती हैं जिन्हें हल करने के लिए, आपको कुछ अतिरिक्त मदद की ज़रूरत पड़े. सवाल पूछने और गड़बड़ियों की शिकायत करने के बारे में जानकारी पाने के लिए, हमारा सहायता पेज देखें.