处理大厅和匹配 SDK 错误

对于有关 PlayFab 大厅和匹配 SDK 如何显示错误以及你应如何处理这些错误的指南,本页旨在充当快速参考。

讨论了以下主题:

同步与异步错误

许多 SDK API 都是异步的。 调用 API(例如PFMultiplayerCreateAndJoinLobby)以启动操作,然后异步操作会以PFLobbyCreateAndJoinLobbyCompletedStateChange等“状态更改”完成。

这意味着,使用异步大厅和匹配客户端 API 时,必须处理两种类型的错误:

  1. 同步错误
  2. 异步错误

有关 SDK 的异步模型和状态更改的详细信息,请参阅异步操作文档页。

对于同步 API(例如PFLobbyGetLobbyId),只需处理同步错误。

同步错误

“同步错误”是作为 API 调用的返回值提供的HRESULT 。 这些错误通常是由于调用参数不正确的 API、在库处于无效状态时调用 API 或内部库无法分配内存。 如果 API 返回同步错误,API 提供的任何输出参数都应被视为无效。

调用异步 API (例如PFMultiplayerCreateAndJoinLobby) 时,同步错误值仅表示请求的操作能否启动。 有关了解异步操作的结果的信息,请参阅异步错误部分。

异步错误

“异步错误”作为状态更改中的HRESULTs(与每个操作即结果字段中的异步完成关联)提供。 对于游戏来说,与同步错误相比,这些错误通常更有趣。 异步报告的一些错误类型的非详尽列表包括:

  • 服务限制错误
  • 无法在客户端上同步验证的无效参数错误
  • 与实时通知服务交互时出错
  • 连接错误

有关获取异步和同步错误的可读错误消息的指南,请参阅错误代码和错误消息部分。

错误代码和错误消息

库以 HRESULT 的形式显示错误(同步或异步):四字节数值错误代码。 这些紧凑错误代码非常适合在遥测和其他诊断工具中记录,用于调试意外的游戏行为。

调用PFMultiplayerGetErrorMessage以将这些错误代码转换为可读消息。 这些错误消息仅供开发人员查看。 它们不是本地化代码,也不是供最终用户使用,因此最适合内部开发日志。

此外,PlayFab 多人游戏 SDK 错误代码中提供了 SDK 错误代码及其错误消息的列表。