識別
第一步是識別錯誤。雖然每個未攔截的錯誤都會被記錄,並可從傳回給呼叫端 (用戶端) 的回應中取得,但您可以使用try/catch 區塊及早攔截錯誤。
請考慮下列產生並攔截錯誤的 CloudScript 程式碼片段。
錯誤碼本身就足以識別錯誤。
記錄
任何未處理的錯誤都會新增至回應中,讓用戶端可以處理問題。 同時,它會建立一個 CloudScript 錯誤項目,並將其新增至 CloudScript 儀表板上提供的總統計資料中。
log 物件使用錯誤記錄。
復原
並非總是能從錯誤中復原。像InvalidArguments 這類問題,除了將問題回報給玩家之外,您別無選擇。
有一部分錯誤可以套用重試策略。可重試的錯誤類型在全域 API 方法錯誤碼中有說明。
套用重試策略時,請您務必符合下列需求:
- 每次重試時,重試之間的延遲應以指數方式增加。這可以增加呼叫成功的機會,並防止您的遊戲對 PlayFab 伺服器發出大量垃圾要求 (這將導致更多呼叫被拒絕)。
- 您應有選擇性地套用此重試策略,只對值得重試的錯誤碼使用。
CloudScript 逾時錯誤
CloudScript API 呼叫的執行時間限制為 4 秒。 如果執行時間超過 4 秒,就會引發InternalServerError,且 PlayStream 事件會寫入類似下列的 Logs 物件:
- 將您的 CloudScript 分割成可在 4 秒內執行完畢的較小程式碼片段。
- 改用使用 Azure Functions 的 CloudScript,在某些情況下它有較長的逾時限制。您可以在快速入門指南中檢視這些限制。
