识别
第一步是识别错误。虽然每个未捕获的错误都会被记录并且可在响应中提供给调用方(客户端),但你可以通过使用try/catch 代码块尽早捕获错误。
请考虑以下产生并捕获错误的 CloudScript 代码片段。
错误代码本身就足以识别错误。
日志记录
任何未处理的错误都会被添加到响应中,允许客户端处理该问题。 同时,它会创建一个 CloudScript 错误条目,并将其添加到 CloudScript 仪表板上可用的总统计信息中。 若要以 JSON 字符串形式强制记录异常,请通过log 对象使用错误日志记录。
恢复
并非总是能够从错误中恢复。诸如InvalidArguments 之类的问题会让你别无选择,只能将问题报告给玩家。
有一部分错误可以应用重试策略。可重试的错误类型在全局 API 方法错误代码中进行了描述。
在应用重试策略时,我们请求你务必满足以下要求:
- 每次重试时,重试之间的延迟应呈指数增长。这会增加成功调用的机会,并防止你的游戏对 PlayFab 服务器发送过多请求(否则会导致更多被拒绝的调用)。
- 你应有选择性地应用此重试策略,仅将其用于值得重试的错误代码。
CloudScript 超时错误
CloudScript API 调用的执行时间限制为 4 秒。 如果执行时间超过 4 秒,将引发InternalServerError,并且 PlayStream Event 会写入类似于以下内容的 Logs 对象:
- 将你的 CloudScript 拆分为更小的代码段,使其运行时间在 4 秒以内。
- 切换到 CloudScript 使用 Azure Functions,在某些情况下其超时限制更长。你可以在快速入门指南中查看该限制。
