Để 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. Hiển thị cho người dùng thông báo lỗi có thể xử lý, trong đó nêu rõ các bước khắc phục để giải quyết vấn đề.
Tài liệu này mô tả những lỗi có thể xảy ra với các trình kết nối, cách hoạt động của thông báo lỗi và cách xử lý đúng cách các lỗi của trình kết nối.
Thông tin: Để tìm hiểu thêm về cách xử lý các trường hợp 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 của bạn thường thuộc một trong 3 danh mục sau:
Nhà phát triển trình kết nối phải xử lý các lỗi nội bộ và bên ngoài của trình kết nối. Những lỗi này xảy ra do mã do nhà phát triển tạo.
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ụ: trường hợp này có thể xảy ra 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()
.
Bạn nên dự đoán và xử lý những lỗi này bằng cách đưa ra lời 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, hãy xem Các phương pháp hay nhất để xử lý lỗi của trình kết nối.
Lỗi bên ngoài của trình kết nố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 getData()
cho 3 trường chỉ trả về dữ liệu cho 2 trường. Mặc dù trình kết nối đã hoàn tất việc thực thi, nhưng không đáp ứng được yêu cầu của Looker Studio. Việc kiểm thử kỹ lưỡng có thể ngăn chặn những lỗi này.
Bạn thường có thể khắc phục các lỗi bên ngoài của trình kết nối bằng cách xem xét thông tin chi tiết về lỗi (nếu có) và gỡ lỗi mã để xác định vấn đề. Để biết thêm thông tin về cách 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ụ: nếu người dùng cố gắng sử dụng biểu đồ chuỗi thời gian với một nguồn dữ liệu không có phương diện ngày/giờ.
Nếu lỗi không liên quan trực tiếp đến trình kết nối, thì nhà phát triển trình kết nối không cần làm gì cả. Người dùng có thể truy cập vào Trung tâm trợ giúp của Looker Studio để được trợ giúp thêm.
Hiện thông báo lỗi
Hiển thị thông tin chi tiết về lỗi dựa trên trạng thái quản trị
Khi một trình kết nối gặp 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ị của người dùng.
- Nếu là người dùng quản trị, thì họ sẽ thấy tất cả thông tin chi tiết. Thông tin này 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ị, thì họ sẽ chỉ thấy thông tin chi tiết nếu lỗi có thông báo thân thiện với người dùng. Để tìm hiểu thêm về cách hiển thị thông báo lỗi cho người dùng không phải là quản trị viên, hãy xem phần Đưa ra lỗi cho người dùng.
Đưa ra lỗi cho người dùng
Theo mặc định, chỉ quản trị viên của trình kết nối mới thấy thông tin chi tiết về lỗi. Điều này giúp ngăn chặn việc vô tình tiết lộ thông tin nhạy cảm, chẳng hạn như khoá API trong dấu vết ngăn xếp. Để cho người dùng không phải là quản trị viên thấy thông báo lỗi, hãy sử dụng newUserError() trong dịch vụ Apps Script của 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ị cho tất cả người dùng, trong khi setDebugText()
đặt văn bản sẽ 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 của trình kết nối
Bạn nên cố gắng phát hiện và xử lý nhiều lỗi nhất có thể trong quá trình thực thi mã trình kết nối. 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:
- Không tìm nạp được URL (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 từ API
- Đã thu hồi mã uỷ quyền
Xử lý các lỗi có thể khắc phục
Bạn nên xử lý những điểm thực thi trình kết nối có thể gặp lỗi nhưng có thể khôi phục. Ví dụ: nếu một yêu cầu API không thành công vì một lý do không nghiêm trọng (ví dụ: giảm tải máy chủ), thì yêu cầu đó sẽ được thử lại trước khi đưa ra lỗi.
Bắt và gửi lỗi
Bạn nên bắt và ném lại các lỗi không thể khôi phục. Lỗi được truyền lại sẽ giúp người dùng hiểu được lý do xảy ra lỗi. Nếu có thể khắc phục vấn đề, bạn nên cung cấp thông tin chi tiết về biện pháp khắc phục.
Xem phần đưa ra lỗi cho người dùng.
Ghi 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 bạn hiểu rõ các lỗi, gỡ lỗi và phát hiện các trường hợp ngoại lệ chưa được xử lý.
Để tìm hiểu thêm về Báo cáo lỗi Stackdriver, cách bật tính năng ghi nhật ký ngoại lệ cho một tập lệnh và cách xác định người dùng một cách an toàn cho mục đích gỡ lỗi, hãy xem phần Sử dụng tính năng ghi nhật ký Stackdriver.
KHÔNG DÙNG NỮA: Sử dụng tiền tố DS_USER:
cho 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 là quản trị viên, hãy thêm tiền tố DS_USER:
vào thông báo lỗi. Tiền tố này được dùng để xác định các thông báo 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 một trường hợp thông báo lỗi sẽ xuất hiện cho người dùng không phải là quản trị viên và một trường hợp khác thông báo lỗi sẽ chỉ xuất hiện cho người dùng là quản trị viên: