कम्यूनिटी कनेक्टर में जोड़ी गई गड़बड़ियों और मैसेज को मैनेज करना

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

इस दस्तावेज़ में, कनेक्टर से जुड़ी गड़बड़ियों के बारे में बताया गया है. साथ ही, यह भी बताया गया है कि गड़बड़ी के मैसेज कैसे काम करते हैं और कनेक्टर से जुड़ी गड़बड़ियों को ठीक से कैसे हैंडल किया जाता है.

जानकारी: JavaScript में अपवादों को मैनेज करने के बारे में ज़्यादा जानने के लिए, try...catch स्टेटमेंट देखें.

गड़बड़ियों के टाइप

कनेक्टर का इस्तेमाल करते समय, उपयोगकर्ता को मिलने वाली गड़बड़ियों के टाइप और उनकी वजहें आम तौर पर इन तीन कैटगरी में से किसी एक में आती हैं:

  1. कनेक्टर की इंटरनल गड़बड़ियां
  2. कनेक्टर से जुड़ी बाहरी गड़बड़ियां
  3. [Data Studio errors]

कनेक्टर की अंदरूनी और बाहरी गड़बड़ियों को कनेक्टर डेवलपर को ठीक करना चाहिए. ये गड़बड़ियां, डेवलपर के लिखे गए कोड की वजह से होती हैं.

कनेक्टर में कोई गड़बड़ी हुई

कनेक्टर को चलाने के दौरान, कनेक्टर से जुड़ी अंदरूनी गड़बड़ियां होती हैं. उदाहरण के लिए, अगर getData() को लागू करने के दौरान कोई कनेक्टर, एपीआई से मिले रिस्पॉन्स को पार्स नहीं कर पाता है. इन गड़बड़ियों का अनुमान लगाया जाना चाहिए. साथ ही, जहां लागू हो वहां उपयोगकर्ताओं को आसानी से समझ आने वाली जानकारी देकर, इन्हें ठीक किया जाना चाहिए.

कनेक्टर की इंटरनल गड़बड़ियों को ठीक करने के बारे में ज़्यादा जानने के लिए, कनेक्टर की गड़बड़ियों को ठीक करने के सबसे सही तरीके लेख पढ़ें.

कनेक्टर से जुड़ी बाहरी गड़बड़ी

कनेक्टर के चलने के बाद, कनेक्टर से जुड़ी बाहरी गड़बड़ियां होती हैं. उदाहरण के लिए, जब तीन फ़ील्ड के लिए किया गया getData() अनुरोध, सिर्फ़ दो फ़ील्ड का डेटा दिखाता है. कनेक्टर ने अनुरोध पूरा कर लिया है, लेकिन यह Data Studio के अनुरोध के मुताबिक नहीं है. अच्छी तरह से टेस्टिंग करने पर, इन गड़बड़ियों को रोका जा सकता है.

कनेक्टर से जुड़ी बाहरी गड़बड़ियों को आम तौर पर, गड़बड़ी की जानकारी (अगर उपलब्ध हो) देखकर ठीक किया जा सकता है. इसके अलावा, समस्या का पता लगाने के लिए कोड को डीबग किया जा सकता है. अपने कनेक्टर को डीबग करने के बारे में ज़्यादा जानने के लिए, अपने कोड को डीबग करना लेख पढ़ें.

Data Studio में गड़बड़ी

Data Studio की गड़बड़ियां, कनेक्टर कोड से जुड़ी गड़बड़ियां नहीं होती हैं. उदाहरण के लिए, अगर कोई उपयोगकर्ता ऐसे डेटा सोर्स के साथ टाइम सीरीज़ चार्ट का इस्तेमाल करने की कोशिश करता है जिसमें तारीख/समय डाइमेंशन नहीं है.

अगर गड़बड़ी सीधे तौर पर कनेक्टर से जुड़ी नहीं है, तो कनेक्टर डेवलपर को कोई कार्रवाई करने की ज़रूरत नहीं है. उपयोगकर्ता, [Data Studio के सहायता केंद्र] पर जाकर ज़्यादा मदद पा सकते हैं.

गड़बड़ी के मैसेज दिखना

एडमिन की स्थिति के आधार पर गड़बड़ी की जानकारी दिखाना

जब कोई कनेक्टर गड़बड़ी दिखाता है, तो Data Studio, उपयोगकर्ता के एडमिन स्टेटस के हिसाब से गड़बड़ी का मैसेज दिखाता है.

  • अगर उपयोगकर्ता एडमिन उपयोगकर्ता है, तो उसे पूरी जानकारी दिखेगी. इसमें गड़बड़ी का मैसेज, गड़बड़ी का टाइप, और स्टैक ट्रेस शामिल है.
  • अगर उपयोगकर्ता एडमिन नहीं है, तो उसे सिर्फ़ तब जानकारी दिखेगी, जब गड़बड़ी में उपयोगकर्ता के लिए आसान भाषा में मैसेज शामिल हो. एडमिन के अलावा अन्य उपयोगकर्ताओं को गड़बड़ी के मैसेज दिखाने के बारे में ज़्यादा जानने के लिए, उपयोगकर्ता को दिखने वाली गड़बड़ियां थ्रो करना लेख पढ़ें.

उपयोगकर्ता को दिखने वाली गड़बड़ियां

डिफ़ॉल्ट रूप से, कनेक्टर एडमिन ही गड़बड़ी की जानकारी देख सकते हैं. इससे संवेदनशील जानकारी को गलती से ज़ाहिर होने से रोकने में मदद मिलती है. जैसे, स्टैक ट्रेस में मौजूद एपीआई पासकोड. एडमिन के अलावा अन्य उपयोगकर्ताओं को गड़बड़ी के मैसेज दिखाने के लिए, Data Studio Apps Script सेवा से newUserError() का इस्तेमाल करें.

उदाहरण:

try {
  // API request that can be malformed.
  getDataFromAPI();
} catch (e) {
  DataStudioApp.createCommunityConnector()
      .newUserError()
      .setDebugText('Error fetching data from API. Exception details: ' + e)
      .setText('There was an error communicating with the service. Try again later, or file an issue if this error persists.')
      .throwException();

}

इस उदाहरण में, setText() से ऐसा टेक्स्ट सेट किया गया है जो सभी उपयोगकर्ताओं को दिखेगा. वहीं, setDebugText() से ऐसा टेक्स्ट सेट किया गया है जो सिर्फ़ एडमिन उपयोगकर्ताओं को दिखेगा.

कनेक्टर से जुड़ी गड़बड़ियों को ठीक करने के सबसे सही तरीके

आपको कनेक्टर कोड को लागू करने के दौरान, ज़्यादा से ज़्यादा गड़बड़ियों को पकड़ना और उन्हें ठीक करना चाहिए. उदाहरण के लिए, कुछ सामान्य कार्रवाइयों की वजह से गड़बड़ियां हो सकती हैं या ऐप्लिकेशन की स्थिति खराब हो सकती है. जैसे:

  • यूआरएल फ़ेच करने की कोशिश पूरी नहीं हुई (कुछ समय के लिए होने वाली गड़बड़ियां, टाइमआउट)
  • अनुरोध की गई समयावधि के लिए कोई डेटा उपलब्ध नहीं है
  • एपीआई से मिले डेटा को पार्स या फ़ॉर्मैट नहीं किया जा सकता
  • अनुमति देने वाले टोकन रद्द कर दिए गए हैं

ऐसी गड़बड़ियों को ठीक करना जो अपने-आप या हल्की-फुल्की कार्रवाइयों से ठीक हो सकती हैं

कनेक्टर के एक्ज़ीक्यूशन के ऐसे पॉइंट को हैंडल किया जाना चाहिए जहां गड़बड़ी हो सकती है, लेकिन उसे ठीक किया जा सकता है. उदाहरण के लिए, अगर किसी एपीआई अनुरोध के पूरा न होने की वजह गंभीर नहीं है (जैसे, सर्वर पर लोड कम करना), तो गड़बड़ी का मैसेज दिखाने से पहले, अनुरोध को फिर से आज़माना चाहिए.

गड़बड़ियों को पकड़ना और उन्हें थ्रो करना

ऐसी गड़बड़ियों को पकड़ना चाहिए जिन्हें ठीक नहीं किया जा सकता और उन्हें फिर से थ्रो करना चाहिए. फिर से थ्रो की गई गड़बड़ी से, लोगों को यह समझने में मदद मिलनी चाहिए कि गड़बड़ी क्यों हुई. अगर समस्या को ठीक किया जा सकता है, तो उसे ठीक करने के लिए की जाने वाली कार्रवाई की जानकारी दें.

उपयोगकर्ताओं को दिखने वाली गड़बड़ियों के बारे में जानकारी देना लेख पढ़ें.

Stackdriver में गड़बड़ियों को लॉग करना

गड़बड़ियों और अन्य मैसेज को लॉग करने के लिए, Stackdriver का इस्तेमाल करें. इससे गड़बड़ियों को समझने, समस्याओं को डीबग करने, और ऐसे अपवादों का पता लगाने में मदद मिलती है जिन्हें हैंडल नहीं किया गया है.

Stackdriver Error Reporting के बारे में ज़्यादा जानने के लिए, किसी स्क्रिप्ट के लिए अपवाद लॉगिंग चालू करने का तरीका जानने के लिए, और डीबग करने के मकसद से उपयोगकर्ताओं की पहचान सुरक्षित तरीके से करने का तरीका जानने के लिए, Stackdriver Logging का इस्तेमाल करना लेख पढ़ें.

अब काम नहीं करता: गड़बड़ी के सुरक्षित मैसेज के लिए, DS_USER: प्रीफ़िक्स का इस्तेमाल करें

एडमिन नहीं हैं उन उपयोगकर्ताओं को आसानी से समझ में आने वाले गड़बड़ी के मैसेज दिखाने के लिए, गड़बड़ी के मैसेज में DS_USER: प्रीफ़िक्स शामिल करें. इस प्रीफ़िक्स का इस्तेमाल, गैर-एडमिन उपयोगकर्ताओं के लिए सुरक्षित मैसेज की पहचान करने के लिए किया जाता है. यह असल गड़बड़ी के मैसेज में शामिल नहीं होता.

यहां दिए गए उदाहरणों में, एक ऐसा मामला शामिल है जहां एडमिन नहीं होने वाले उपयोगकर्ताओं को गड़बड़ी का मैसेज दिखेगा. वहीं, दूसरे मामले में गड़बड़ी का मैसेज सिर्फ़ एडमिन उपयोगकर्ताओं को दिखेगा:

data-studio/errors.gs
function showErrorToAllUsers() {
  try {
    // Code that might fail.
    throw new Error("Something went wrong");
  } catch (e) {
    throw new Error("DS_USER:This will be shown to admin & non-admin.");
  }
}

function showErrorToAdminUsers() {
  // Only admin users will see the following error.
  try {
    // Code that might fail.
    throw new Error("Something went wrong");
  } catch (e) {
    throw new Error("This message will only be shown to admin users");
  }
}