সম্প্রদায় সংযোগকারীদের জন্য ত্রুটি পরিচালনা এবং বার্তা

একটি ভাল ব্যবহারকারীর অভিজ্ঞতা প্রদান করার জন্য আপনার কোডটি সঠিকভাবে ত্রুটিগুলি পরিচালনা করা উচিত। ব্যবহারকারীদের কর্মযোগ্য ত্রুটি বার্তা সহ উপস্থাপন করুন যা সমস্যা সমাধানের জন্য সংশোধনমূলক পদক্ষেপের রূপরেখা দেয়।

এই দস্তাবেজটি সংযোগকারীর সাথে ঘটতে পারে এমন ত্রুটিগুলি বর্ণনা করে, ত্রুটি বার্তাগুলি কীভাবে কাজ করে এবং কীভাবে সংযোগকারী ত্রুটিগুলি সঠিকভাবে পরিচালনা করতে হয়৷

তথ্য: জাভাস্ক্রিপ্টে ব্যতিক্রমগুলি পরিচালনা করার বিষয়ে আরও জানতে চেষ্টা করুন...ক্যাচ স্টেটমেন্ট দেখুন।

ত্রুটির প্রকার

আপনার সংযোগকারী ব্যবহার করার সময় ব্যবহারকারী যে ধরনের ত্রুটির সম্মুখীন হতে পারেন সেগুলি সাধারণত নিম্নলিখিত তিনটি বিভাগের মধ্যে একটিতে পড়ে:

  1. সংযোগকারীর অভ্যন্তরীণ ত্রুটি
  2. সংযোগকারী বাহ্যিক ত্রুটি
  3. লুকার স্টুডিও ত্রুটি

সংযোগকারীর অভ্যন্তরীণ এবং বাহ্যিক ত্রুটিগুলি সংযোগকারী বিকাশকারী দ্বারা পরিচালনা করা উচিত। এই ত্রুটিগুলি বিকাশকারী-লেখক কোডের কারণে ঘটে।

সংযোগকারীর অভ্যন্তরীণ ত্রুটি৷

সংযোগকারী কার্যকর করার সময় সংযোগকারীর অভ্যন্তরীণ ত্রুটি ঘটে। উদাহরণস্বরূপ, যদি একটি সংযোগকারী getData() কার্যকর করার সময় একটি API প্রতিক্রিয়া পার্স করতে না পারে। এই ত্রুটিগুলি অনুমান করা উচিত এবং যেখানে প্রযোজ্য সেখানে ব্যবহারকারী-বান্ধব ব্যাখ্যা দিয়ে পরিচালনা করা উচিত।

সংযোগকারীর অভ্যন্তরীণ ত্রুটিগুলি পরিচালনা করার বিষয়ে আরও তথ্যের জন্য, সংযোগকারী ত্রুটিগুলি পরিচালনা করার জন্য সেরা অনুশীলনগুলি দেখুন৷

সংযোগকারী বাহ্যিক ত্রুটি

সংযোগকারী এক্সিকিউশনের পরে সংযোগকারীর বাহ্যিক ত্রুটি ঘটে। উদাহরণস্বরূপ, যখন একটি getData() তিনটি ক্ষেত্রের জন্য অনুরোধ শুধুমাত্র দুটির জন্য ডেটা প্রদান করে। যদিও সংযোগকারীটি সম্পাদন সম্পন্ন করেছে, এটি লুকার স্টুডিওর অনুরোধকে সন্তুষ্ট করেনি। পুঙ্খানুপুঙ্খ পরীক্ষা এই ত্রুটিগুলি প্রতিরোধ করতে পারে।

সংযোগকারীর বাহ্যিক ত্রুটিগুলি সাধারণত ত্রুটির বিবরণ পর্যালোচনা করে (যদি উপলব্ধ থাকে) এবং সমস্যাটি সনাক্ত করতে কোডটি ডিবাগ করে ঠিক করা যেতে পারে। আপনার সংযোগকারীকে ডিবাগ করার বিষয়ে আরও তথ্যের জন্য, আপনার কোড ডিবাগ করুন দেখুন।

লুকার স্টুডিও ত্রুটি

লুকার স্টুডিও ত্রুটিগুলি আপনার সংযোগকারী কোডের সাথে সম্পর্কিত নয়। উদাহরণস্বরূপ, যদি কোনও ব্যবহারকারী তারিখ/সময়ের মাত্রা ছাড়াই ডেটা উত্স সহ একটি টাইম সিরিজ চার্ট ব্যবহার করার চেষ্টা করে।

যদি ত্রুটিটি সরাসরি সংযোগকারীর সাথে সম্পর্কিত না হয়, তাহলে সংযোগকারী বিকাশকারীর জন্য কোন পদক্ষেপ নেই। ব্যবহারকারীরা লুকার স্টুডিও সহায়তা কেন্দ্রে গিয়ে অতিরিক্ত সহায়তা পেতে পারেন।

ত্রুটি বার্তা দেখানো হচ্ছে

অ্যাডমিন স্ট্যাটাসের উপর ভিত্তি করে ত্রুটির বিবরণ দেখানো হচ্ছে

যখন একটি সংযোগকারী একটি ত্রুটি নিক্ষেপ করে, ব্যবহারকারীর প্রশাসক অবস্থার উপর নির্ভর করে লুকার স্টুডিও ত্রুটি বার্তাটি দেখায়।

  • ব্যবহারকারী যদি অ্যাডমিন ব্যবহারকারী হন তবে তারা সমস্ত বিবরণ দেখতে পাবেন। এর মধ্যে রয়েছে ত্রুটির বার্তা, ত্রুটির ধরন এবং স্ট্যাক ট্রেস।
  • যদি ব্যবহারকারী একজন প্রশাসক ব্যবহারকারী না হন, তবে ত্রুটিটিতে ব্যবহারকারী-বান্ধব বার্তা অন্তর্ভুক্ত থাকলে তারা শুধুমাত্র বিশদ দেখতে পাবে। অ-প্রশাসক ব্যবহারকারীদের ত্রুটি বার্তা দেখানো সম্পর্কে আরও জানতে দেখুন থ্রোয়িং ইউজার ফেসিং এররস দেখুন।

ত্রুটির সম্মুখীন ব্যবহারকারী নিক্ষেপ

ডিফল্টরূপে, শুধুমাত্র সংযোগকারী প্রশাসকরা ত্রুটির বিবরণ দেখতে পান। এটি সংবেদনশীল তথ্যের অসাবধানতাবশত প্রকাশ প্রতিরোধে সাহায্য করে, যেমন স্ট্যাক ট্রেসে API কী। নন-প্রশাসক ব্যবহারকারীদের ত্রুটি বার্তা দেখানোর জন্য, লুকার স্টুডিও অ্যাপস স্ক্রিপ্ট পরিষেবা থেকে 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() টেক্সট সেট করে যা শুধুমাত্র অ্যাডমিন ব্যবহারকারীদের দেখানো হবে।

সংযোগকারী ত্রুটিগুলি পরিচালনা করার জন্য সর্বোত্তম অনুশীলন

আপনার সংযোগকারী কোড কার্যকর করার সময় যতটা সম্ভব ত্রুটি ধরা এবং পরিচালনা করার চেষ্টা করা উচিত। উদাহরণস্বরূপ, কিছু সাধারণ ক্রিয়াকলাপ যা ত্রুটি বা অবাঞ্ছিত অবস্থার কারণ হতে পারে তার মধ্যে রয়েছে:

  • একটি ব্যর্থ URL আনার প্রচেষ্টা (ক্ষণস্থায়ী ত্রুটি, সময়সীমা)
  • অনুরোধ করা সময়ের জন্য কোন ডেটা উপলব্ধ নেই
  • API থেকে ডেটা পার্স বা ফর্ম্যাট করা যাবে না
  • অনুমোদন টোকেন প্রত্যাহার করা হয়েছে

পুনরুদ্ধারযোগ্য ত্রুটিগুলি পরিচালনা করুন

সংযোগকারী কার্যকর করার পয়েন্টগুলি যা ব্যর্থ হতে পারে কিন্তু পুনরুদ্ধারযোগ্য তা পরিচালনা করা উচিত। উদাহরণস্বরূপ, যদি একটি API অনুরোধ একটি অ-মারাত্মক কারণে ব্যর্থ হয় (যেমন সার্ভার লোডশেডিং), তাহলে একটি ত্রুটি নিক্ষেপ করার আগে এটি পুনরায় চেষ্টা করা উচিত।

ধরা এবং ত্রুটি নিক্ষেপ

অ-পুনরুদ্ধারযোগ্য ত্রুটি ধরা এবং পুনরায় নিক্ষেপ করা উচিত. পুনরায় নিক্ষেপ করা ত্রুটি ব্যবহারকারীদের বুঝতে সাহায্য করবে কেন ত্রুটি ঘটেছে৷ যদি সমস্যাটি ঠিক করা যায় তবে সংশোধনমূলক পদক্ষেপের বিশদ প্রদান করা উচিত।

ত্রুটির সম্মুখীন ব্যবহারকারী নিক্ষেপ দেখুন.

স্ট্যাকড্রাইভারে ত্রুটিগুলি লগ করুন৷

লগিং ত্রুটি এবং অন্যান্য বার্তাগুলির জন্য স্ট্যাকড্রাইভার ব্যবহার করুন৷ এটি ত্রুটিগুলি বুঝতে, সমস্যাগুলি ডিবাগ করতে এবং পরিচালনা না করা ব্যতিক্রমগুলি আবিষ্কার করতে সহায়তা করে৷

Stackdriver Error Reporting সম্বন্ধে আরও জানতে, কিভাবে একটি স্ক্রিপ্টের জন্য ব্যতিক্রম লগিং সক্ষম করতে হয়, এবং কিভাবে নিরাপদে ডিবাগিংয়ের উদ্দেশ্যে ব্যবহারকারীদের সনাক্ত করতে হয় দেখুন Stackdriver Logging ব্যবহার করা

অপ্রচলিত: নিরাপদ ত্রুটি বার্তার জন্য DS_USER: উপসর্গ ব্যবহার করুন

অ-প্রশাসক ব্যবহারকারীদের ব্যবহারকারী-বান্ধব ত্রুটি বার্তা প্রদান করতে DS_USER: ত্রুটি বার্তা সহ উপসর্গ অন্তর্ভুক্ত করুন। এই উপসর্গটি অ-প্রশাসক ব্যবহারকারীদের জন্য নিরাপদ বার্তা সনাক্ত করতে ব্যবহৃত হয় এবং প্রকৃত ত্রুটি বার্তায় অন্তর্ভুক্ত করা হয় না।

নিম্নলিখিত উদাহরণগুলি এমন একটি ক্ষেত্রে অন্তর্ভুক্ত যেখানে একটি ত্রুটি বার্তা নন-প্রশাসক ব্যবহারকারীদের দেখানো হবে অন্য যেখানে একটি ত্রুটি বার্তা শুধুমাত্র প্রশাসক ব্যবহারকারীদের দেখানো হবে:

data-studio/errors.gs
// Admin and non-admin users will see the following error.
try {
  // Code that might fail.
} catch (e) {
  throw new Error('DS_USER:This will be shown to admin & non-admin.');
}

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