Xử lý lỗi và thông báo cho Trình kết nối cộng đồng

Để mang lại trải nghiệm tốt cho người dùng, mã của bạn phải xử lý lỗi một cách chính xác. Cung cấp cho người dùng các thông báo lỗi có thể xử lý kèm theo các bước khắc phục đang giải quyết sự cố.

Tài liệu này mô tả các lỗi có thể xảy ra với trình kết nối, cách lỗi thông báo hoạt động và cách xử lý đúng cách lỗi trình kết nối.

Thông tin: Để tìm hiểu thêm về cách xử lý các ngoại lệ trong JavaScript, hãy xem câu lệnh try...catch.

Các loại lỗi

Các loại và nguyên nhân gây ra lỗi mà người dùng có thể gặp phải khi sử dụng trình kết nối thường thuộc một trong ba loại sau:

  1. lỗi nội bộ về trình kết nối
  2. lỗi bên ngoài của trình kết nối
  3. Lỗi Looker Studio

Trình kết nối phải xử lý lỗi nội bộ và lỗi bên ngoài của trình kết nối nhà phát triển. Các lỗi này xảy ra do mã do nhà phát triển tạo ra.

Lỗi nội bộ của trình kết nối

Lỗi nội bộ của trình kết nối xảy ra trong quá trình thực thi trình kết nối. Ví dụ: nếu một trình kết nối không thể phân tích cú pháp phản hồi API trong quá trình thực thi getData(). Những lỗi này phải được dự đoán và xử lý bằng cách giải thích thân thiện với người dùng nếu có.

Để biết thêm thông tin về cách xử lý lỗi nội bộ của trình kết nối, xem Các phương pháp hay nhất để xử lý lỗi trình kết nối.

Lỗi trình kết nối bên ngoài

Lỗi bên ngoài của trình kết nối xảy ra sau khi thực thi trình kết nối. Ví dụ: khi một Yêu cầu của getData() đối với 3 trường chỉ trả về dữ liệu của 2 trường. Mặc dù trình kết nối đã thực thi xong, nhưng trình kết nối không đáp ứng yêu cầu của Looker Studio. Việc kiểm tra kỹ lưỡng có thể giúp ngăn chặn các lỗi này.

Lỗi bên ngoài của trình kết nối thường có thể được khắc phục bằng cách xem xét chi tiết lỗi (nếu ) và gỡ lỗi mã để xác định sự cố. Để biết thêm thông tin về gỡ lỗi trình kết nối, hãy xem phần Gỡ lỗi mã.

Lỗi Looker Studio

Lỗi Looker Studio là những lỗi không liên quan đến mã trình kết nối của bạn. Ví dụ: người dùng cố gắng sử dụng biểu đồ chuỗi thời gian có nguồn dữ liệu không có ngày/giờ.

Nếu lỗi không liên quan trực tiếp đến trình kết nối, thì bạn không cần làm gì cả để nhà phát triển trình kết nối thực hiện. Người dùng có thể tìm thêm trợ giúp bằng cách truy cập vào Trung tâm trợ giúp của Looker Studio.

Hiện thông báo lỗi

Hiện thông tin chi tiết về lỗi dựa trên trạng thái quản trị viên

Khi trình kết nối báo lỗi, Looker Studio sẽ hiển thị thông báo lỗi đó tuỳ thuộc vào trạng thái quản trị viên của người dùng.

  • Nếu người dùng là người dùng quản trị thì họ sẽ thấy tất cả chi tiết. bao gồm thông báo lỗi, loại lỗi và dấu vết ngăn xếp.
  • Nếu người dùng không phải là người dùng quản trị, họ sẽ chỉ thấy chi tiết nếu bao gồm cả thông báo thân thiện với người dùng. Để tìm hiểu thêm về việc hiển thị lỗi thông báo cho người dùng không phải quản trị viên sẽ thấy Lỗi ném cho người dùng.

Đưa ra lỗi mà người dùng gặp phải

Theo mặc định, chỉ quản trị viên trình kết nối mới xem được thông tin chi tiết về lỗi. Điều này giúp ngăn chặn vô tình tiết lộ thông tin nhạy cảm, chẳng hạn như khoá API trong ngăn xếp dấu vết. Để hiển thị thông báo lỗi cho người dùng không phải quản trị viên, hãy sử dụng newUserError() từ Dịch vụ Apps Script trong Looker Studio.

Ví dụ:

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();

}

Trong ví dụ này, setText() đặt văn bản sẽ hiển thị với tất cả người dùng, còn setDebugText() đặt văn bản chỉ hiển thị cho người dùng quản trị.

Các phương pháp hay nhất để xử lý lỗi trình kết nối

Bạn nên cố gắng phát hiện và xử lý càng nhiều lỗi càng tốt trong thực thi mã trình kết nối của bạn. Ví dụ: một số thao tác phổ biến có thể gây ra lỗi hoặc trạng thái không mong muốn bao gồm:

  • Lần tìm nạp URL không thành công (lỗi tạm thời, hết thời gian chờ)
  • Không có dữ liệu cho khoảng thời gian được yêu cầu
  • Không thể phân tích cú pháp hoặc định dạng dữ liệu của API
  • Đã thu hồi mã thông báo uỷ quyền

Xử lý lỗi có thể khôi phục

Các điểm thực thi trình kết nối có thể không thành công nhưng có thể khôi phục được đã xử lý. Ví dụ: Nếu một yêu cầu API không thành công vì lý do không nghiêm trọng (chẳng hạn như tải máy chủ giảm), thì bạn nên thử lại trước khi báo lỗi.

Bắt và ném lỗi

Bạn nên phát hiện các lỗi không thể khôi phục và gửi lại. Lỗi gửi lại sẽ giúp người dùng hiểu lý do xảy ra lỗi. Nếu có thể khắc phục được vấn đề thì người bán phải cung cấp thông tin chi tiết về biện pháp khắc phục.

Xem phần gửi lỗi xảy ra với người dùng.

Ghi nhật ký lỗi vào Stackdriver

Sử dụng Stackdriver để ghi nhật ký lỗi và các thông báo khác. Điều này giúp tìm hiểu lỗi, vấn đề gỡ lỗi và phát hiện các ngoại lệ chưa được xử lý.

Để tìm hiểu thêm về tính năng Báo cáo lỗi Stackdriver, cách bật tính năng ghi nhật ký ngoại lệ cho tập lệnh và cách xác định người dùng an toàn cho mục đích gỡ lỗi. Sử dụng tính năng Ghi nhật ký Stackdriver.

ĐÃ NGỪNG HOẠT ĐỘNG: Hãy sử dụng tiền tố DS_USER: cho các thông báo lỗi an toàn

Để cung cấp thông báo lỗi thân thiện với người dùng cho người dùng không phải quản trị viên, hãy bao gồm Tiền tố DS_USER: kèm theo thông báo lỗi. Tiền tố này được dùng để xác định mức độ an toàn cho người dùng không phải quản trị viên và không có trong thông báo lỗi thực tế.

Các ví dụ sau đây bao gồm trường hợp thông báo lỗi sẽ hiển thị cho người dùng không phải quản trị viên khác trong đó thông báo lỗi sẽ chỉ hiển thị với quản trị viên người dùng:

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');
}