การจัดการข้อผิดพลาดและข้อความสำหรับปลั๊กอินจากชุมชนสำหรับใช้ลิงก์ข้อมูล

โค้ดควรจัดการข้อผิดพลาดอย่างถูกต้องเพื่อให้ผู้ใช้ได้รับประสบการณ์การใช้งานที่ดี แสดงข้อความแสดงข้อผิดพลาดที่นำไปใช้ได้จริงให้แก่ผู้ใช้ ซึ่งระบุขั้นตอนการแก้ไขปัญหาในการแก้ไขปัญหา

เอกสารนี้อธิบายข้อผิดพลาดที่อาจเกิดขึ้นกับเครื่องมือเชื่อมต่อ วิธีการทำงานของข้อความแสดงข้อผิดพลาด และวิธีจัดการข้อผิดพลาดของเครื่องมือเชื่อมต่ออย่างถูกต้อง

ข้อมูล: ดูข้อมูลเพิ่มเติมเกี่ยวกับการจัดการข้อยกเว้นใน JavaScript ได้ที่ลอง...คำสั่ง Catch

ประเภทของข้อผิดพลาด

ประเภทและสาเหตุของข้อผิดพลาดที่ผู้ใช้อาจพบเมื่อใช้เครื่องมือเชื่อมต่อมักจัดอยู่ในหมวดหมู่ใดหมวดหมู่หนึ่งใน 3 หมวดหมู่ต่อไปนี้

  1. ข้อผิดพลาดภายในของเครื่องมือเชื่อมต่อ
  2. ข้อผิดพลาดจากภายนอกของเครื่องมือเชื่อมต่อ
  3. ข้อผิดพลาดของ Looker Studio

นักพัฒนาเครื่องมือเชื่อมต่อควรจัดการข้อผิดพลาดภายในและภายนอกของตัวเชื่อมต่อ ข้อผิดพลาดเหล่านี้เกิดขึ้นจากโค้ดที่นักพัฒนาแอปสร้างขึ้น

ข้อผิดพลาดภายในของตัวเชื่อมต่อ

เกิดข้อผิดพลาดภายในของเครื่องมือเชื่อมต่อเกิดขึ้นในระหว่างการดำเนินการกับเครื่องมือเชื่อมต่อ เช่น หากเครื่องมือเชื่อมต่อแยกวิเคราะห์การตอบกลับของ API ในระหว่างการดำเนินการ getData() ไม่ได้ ควรคาดการณ์และจัดการข้อผิดพลาดเหล่านี้ด้วยคำอธิบายที่ใช้งานง่าย (หากมี)

ดูข้อมูลเพิ่มเติมเกี่ยวกับการจัดการข้อผิดพลาดภายในของเครื่องมือเชื่อมต่อได้ที่แนวทางปฏิบัติแนะนำในการจัดการข้อผิดพลาดของเครื่องมือเชื่อมต่อ

ข้อผิดพลาดภายนอกของตัวเชื่อมต่อ

ข้อผิดพลาดภายนอกของตัวเชื่อมต่อเกิดขึ้นหลังจากการดำเนินการของตัวเชื่อมต่อ ตัวอย่างเช่น เมื่อคำขอ getData() สำหรับ 3 ช่องแสดงผลข้อมูลเพียง 2 รายการ แม้ว่าเครื่องมือเชื่อมต่อจะดำเนินการสำเร็จแล้ว แต่เครื่องมือเชื่อมต่อดังกล่าวไม่ตอบสนองคำขอจาก Looker Studio การทดสอบอย่างละเอียดจะช่วยป้องกันข้อผิดพลาดเหล่านี้

โดยทั่วไปแล้ว ข้อผิดพลาดภายนอกของเครื่องมือเชื่อมต่อจะแก้ไขได้โดยการดูรายละเอียดข้อผิดพลาด (หากมี) และแก้ไขข้อบกพร่องของโค้ดเพื่อระบุปัญหา สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการแก้ไขข้อบกพร่องของเครื่องมือเชื่อมต่อ โปรดดูแก้ไขข้อบกพร่องของโค้ด

ข้อผิดพลาดของ Looker Studio

ข้อผิดพลาดของ Looker Studio เป็นข้อผิดพลาดที่ไม่เกี่ยวข้องกับโค้ดเครื่องมือเชื่อมต่อ เช่น หากผู้ใช้พยายามใช้แผนภูมิอนุกรมเวลากับแหล่งข้อมูลที่ไม่มีมิติข้อมูลวันที่/เวลา

หากข้อผิดพลาดไม่เกี่ยวข้องกับเครื่องมือเชื่อมต่อโดยตรง ก็หมายความว่านักพัฒนาเครื่องมือเชื่อมต่อไม่ต้องดำเนินการใดๆ ผู้ใช้จะขอรับความช่วยเหลือเพิ่มเติมได้ที่ศูนย์ช่วยเหลือของ Looker Studio

การแสดงข้อความแสดงข้อผิดพลาด

การแสดงรายละเอียดข้อผิดพลาดตามสถานะผู้ดูแลระบบ

เมื่อเครื่องมือเชื่อมต่อแสดงข้อผิดพลาด Looker Studio จะแสดงข้อความแสดงข้อผิดพลาดโดยขึ้นอยู่กับสถานะผู้ดูแลระบบของผู้ใช้

  • หากผู้ใช้เป็นผู้ใช้ที่ดูแลระบบก็จะเห็นรายละเอียดทั้งหมด ซึ่งรวมถึงข้อความแสดงข้อผิดพลาด ประเภทข้อผิดพลาด และสแต็กเทรซ
  • หากไม่ใช่ผู้ใช้ที่ดูแลระบบ ผู้ใช้จะเห็นรายละเอียดเฉพาะในกรณีที่ข้อผิดพลาดมีข้อความที่เหมาะกับผู้ใช้เท่านั้น หากต้องการดูข้อมูลเพิ่มเติมเกี่ยวกับการแสดงข้อความแสดงข้อผิดพลาดต่อผู้ใช้ที่ไม่ใช่ผู้ดูแลระบบ โปรดดูหัวข้อการแสดงข้อผิดพลาดที่ผู้ใช้เห็น

การแสดงข้อผิดพลาดที่ผู้ใช้เห็น

โดยค่าเริ่มต้น จะมีเพียงผู้ดูแลระบบเครื่องมือเชื่อมต่อเท่านั้นที่จะเห็นรายละเอียดของข้อผิดพลาด วิธีนี้จะช่วยป้องกันการเปิดเผยข้อมูลที่ละเอียดอ่อนโดยไม่ได้ตั้งใจ เช่น คีย์ API ในสแต็กเทรซ หากต้องการแสดงข้อความแสดงข้อผิดพลาดแก่ผู้ใช้ที่ไม่ใช่ผู้ดูแลระบบ ให้ใช้ newUserError() จากบริการ Apps Script ของ Looker Studio

ตัวอย่าง

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 ล้มเหลวโดยมีเหตุผลที่ไม่ร้ายแรง (เช่น การปลดโหลดของเซิร์ฟเวอร์) ควรส่งคำขอ API อีกครั้งก่อนที่จะแสดงข้อผิดพลาด

จับและแสดงข้อผิดพลาด

ควรตรวจพบข้อผิดพลาดที่ไม่สามารถกู้คืนได้และทำการแก้ไขอีกครั้ง ข้อผิดพลาดที่เกิดขึ้นซ้ำ จะช่วยให้ผู้ใช้เข้าใจสาเหตุของข้อผิดพลาดได้ หากสามารถแก้ปัญหาได้ ก็ควรระบุรายละเอียดของการดำเนินการแก้ไข

ดูการแสดงข้อผิดพลาดที่ผู้ใช้เห็น

บันทึกข้อผิดพลาดไปยัง Stackdriver

ใช้ Stackdriver เพื่อบันทึกข้อผิดพลาดและข้อความอื่นๆ ซึ่งจะช่วยให้เข้าใจข้อผิดพลาด การแก้ไขข้อบกพร่อง และค้นหาข้อยกเว้นที่ไม่มีการจัดการ

ดูข้อมูลเพิ่มเติมเกี่ยวกับการรายงานข้อผิดพลาด Stackdriver, วิธีเปิดใช้การบันทึกข้อยกเว้นสำหรับสคริปต์ และวิธีระบุผู้ใช้อย่างปลอดภัยเพื่อวัตถุประสงค์ในการแก้ไขข้อบกพร่องได้ที่การใช้ 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');
}