為提供良好的使用者體驗,您的程式碼必須正確處理錯誤。 向使用者提供可採取行動的錯誤訊息,概述應用程式的修正步驟 進而解決問題
本文說明連接器可能發生的錯誤及錯誤狀況 訊息的運作方式,以及如何正確處理連接器錯誤。
資訊:如要進一步瞭解如何處理 JavaScript 中的例外狀況,請參閱 try...catch 陳述式。
錯誤類型
使用者運用您的工具時,可能遇到的錯誤類型和 連接器通常屬於以下三類:
連接器內部和外部錯誤應由連接器處理 開發人員。這些錯誤是因開發人員編寫的程式碼所致。
連接器內部錯誤
連接器執行期間發生連接器內部錯誤。舉例來說
連接器在執行 getData()
期間無法剖析 API 回應。
這些錯誤應該可以預期,也能以使用者容易理解的說明進行處理
視情況而定。
如要進一步瞭解如何處理連接器內部錯誤,請參閱 處理連接器錯誤的最佳做法。
連接器外部錯誤
連接器執行後發生外部錯誤。舉例來說
三個欄位的 getData()
要求只會傳回兩個欄位的資料。雖然
連接器已完成執行作業,但不符合 Looker 的要求
嚴謹測試可避免這些錯誤。
連接器外部錯誤通常可透過檢查錯誤詳細資料加以修正 (如果 ) 並偵錯程式碼,以找出問題。如要進一步瞭解 對連接器進行偵錯,請參閱「對程式碼進行偵錯」。
Looker Studio 錯誤
Looker Studio 錯誤是與連接器程式碼無關的錯誤。例如: 如果使用者嘗試使用時間序列圖表,但資料來源為 日期/時間維度。
如果錯誤與連接器沒有直接關聯,則沒有動作 供連接器開發人員使用使用者可以前往 Looker Studio 說明中心。
顯示錯誤訊息
根據管理員狀態顯示錯誤詳細資料
連接器擲回錯誤時,Looker Studio 會顯示錯誤訊息 取決於使用者的管理員狀態
- 如果使用者是管理員使用者,則會看到所有詳細資料。這包括 錯誤訊息、錯誤類型和堆疊追蹤
- 如果使用者「不是」管理員使用者,則只有在 錯誤訊息指出容易使用的訊息。進一步瞭解如何顯示錯誤 訊息給非管理員使用者,請參閱「使用者遇到錯誤」。
擲回使用者發生錯誤
根據預設,只有連接器管理員才能查看錯誤詳細資料。這有助於 不慎揭露機密資訊,例如堆疊中的 API 金鑰 追蹤記錄。如要向非管理員使用者顯示錯誤訊息,請使用 newUserError() Looker Studio Apps Script 服務。
範例:
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()
則會設定只對管理員使用者顯示的文字。
處理連接器錯誤的最佳做法
請盡可能在維護期間 連接器程式碼的執行。例如,一些需要執行 造成錯誤或不當狀態的情況包括:
- 網址擷取失敗 (暫時性錯誤、逾時)
- 要求的時間範圍內沒有資料
- 無法剖析 API 的資料或設定格式
- 已撤銷授權權杖
處理可復原的錯誤
連接器執行作業可能失敗,但應該可以復原 互動。舉例來說,如果 API 要求因非嚴重原因 (例如 伺服器負載時,應先重試一次,然後再擲回錯誤。
擷取並擲回錯誤
請務必偵測並再次擲回無法復原的錯誤。重新擲回錯誤 應協助使用者瞭解發生錯誤的原因。問題是否已解決 則應提供修正動作的詳細資料。
請參閱擲回使用者發生錯誤。
將錯誤記錄至 Stackdriver
使用 Stackdriver 處理記錄錯誤和其他訊息。這有助於 瞭解錯誤、偵錯問題,以及找出未處理的例外狀況。
如要進一步瞭解 Stackdriver Error Reporting,請瞭解如何啟用例外狀況記錄功能 瞭解如何安全地識別使用者並進行偵錯 使用 Stackdriver Logging。
已淘汰:使用 DS_USER:
前置字元來表示安全的錯誤訊息
如要為非管理員的使用者提供容易理解的錯誤訊息,請參閱
DS_USER:
前置字元包含錯誤訊息。這個前置字串的用途是確認
,且不包含在實際的錯誤訊息中。
以下範例包括顯示錯誤訊息的情況 其他非管理員使用者,只有管理員會看到錯誤訊息 使用者: