> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Tratar erros do SDK C++ de Lobby e Matchmaking

> Referência para tratar erros síncronos e assíncronos expostos pelo SDK C++ de Lobby e Matchmaking do PlayFab, incluindo códigos HRESULT e mensagens de erro.

# Tratar erros do SDK de Lobby e Matchmaking

Esta página pretende servir como uma referência rápida com orientações sobre como os SDKs de Lobby e Matchmaking do PlayFab
expõem erros e como você deve tratá-los.

Os seguintes tópicos são abordados:

* [Erros síncronos e assíncronos](#synchronous-vs-asynchronous-errors)
* [Códigos de erro e mensagens de erro](#error-codes-and-error-messages)

<a id="synchronous-vs-asynchronous-errors" />

## Erros síncronos e assíncronos

Muitas APIs do SDK são assíncronas. Você inicia uma operação chamando uma API como
[PFMultiplayerCreateAndJoinLobby](/pt-BR/services/playfab/multiplayer/lobby/playfabmultiplayerreference-cpp/pflobby/functions/pfmultiplayercreateandjoinlobby)
e, mais tarde, essa operação assíncrona é concluída com uma "alteração de estado" como [PFLobbyCreateAndJoinLobbyCompletedStateChange](/pt-BR/services/playfab/multiplayer/lobby/playfabmultiplayerreference-cpp/pflobby/structs/pflobbycreateandjoinlobbycompletedstatechange).

Isso significa que, ao usar as APIs assíncronas de cliente de Lobby e Matchmaking, há dois tipos de erros que você precisa tratar:

1. erros síncronos
2. erros assíncronos

Mais informações sobre o modelo assíncrono e as alterações de estado do SDK podem ser encontradas na página de documentação de
[operações assíncronas](/pt-BR/services/playfab/multiplayer/lobby/lobby-and-matchmaking-client-sdk-async).

Para APIs síncronas, como [PFLobbyGetLobbyId](/pt-BR/services/playfab/multiplayer/lobby/playfabmultiplayerreference-cpp/pflobby/functions/pflobbygetlobbyid),
você só precisa tratar erros síncronos.

### Erros síncronos

"Erros síncronos" são **HRESULTs** fornecidos como valor de retorno de uma chamada de API. Esses erros geralmente se devem a
chamar a API com parâmetros incorretos, chamar a API enquanto a biblioteca está em um estado inválido ou a falhas internas
da biblioteca ao alocar memória. Todos os parâmetros de saída fornecidos pela API devem ser considerados inválidos se a API retornar
um erro síncrono.

Ao chamar APIs assíncronas (por exemplo, **PFMultiplayerCreateAndJoinLobby**), o valor de erro síncrono só
representa se a operação solicitada pôde ser iniciada. Para obter informações sobre como entender o resultado de uma
operação assíncrona, consulte a seção [Erros assíncronos](#asynchronous-errors).

<a id="asynchronous-errors" />

### Erros assíncronos

Os "erros assíncronos" são fornecidos como **HRESULTs** na alteração de estado associada à
conclusão assíncrona de cada operação, no campo *result*. Esses erros normalmente são mais relevantes para os títulos
do que os erros síncronos. Uma lista não exaustiva de alguns dos tipos de erros relatados de forma assíncrona inclui:

* erros de limitação do serviço
* erros de parâmetro inválido que não podem ser validados de forma síncrona no cliente
* erros na interação com o serviço de mensagens em tempo real
* erros de conectividade

Consulte a seção [Códigos de erro e mensagens de erro](#error-codes-and-error-messages) para obter orientações sobre como obter mensagens de erro
legíveis para erros assíncronos e síncronos.

<a id="error-codes-and-error-messages" />

## Códigos de erro e mensagens de erro

Os erros (síncronos ou assíncronos) são apresentados pela biblioteca na forma de um HRESULT: um código de erro numérico de quatro
bytes. Esses códigos de erro compactos são ideais para registro em telemetria e em outras ferramentas de diagnóstico usadas para
depurar comportamentos inesperados do título.

Esses códigos de erro podem ser convertidos em uma mensagem legível chamando [PFMultiplayerGetErrorMessage](/pt-BR/services/playfab/multiplayer/lobby/playfabmultiplayerreference-cpp/pfmultiplayer/functions/pfmultiplayergeterrormessage).
Essas mensagens de erro destinam-se apenas a desenvolvedores. Elas não são localizadas nem destinadas ao consumo
por usuários finais, portanto são mais adequadas para logs internos de desenvolvimento.

Além disso, uma lista dos códigos de erro do SDK com suas mensagens de erro está disponível em
[Códigos de erro do PlayFab Multiplayer SDK](/pt-BR/services/playfab/multiplayer/lobby/playfabmultiplayerreference-cpp/pfmultiplayererrors).


## Related topics

- [Práticas recomendadas de tratamento de erros do SDK](/pt-BR/services/playfab/live-service-management/service-gateway/automation/cloudscript/sdk-error-handling-best-practices.md)
- [Guia de operações assíncronas do SDK C++ de Lobby e Matchmaking](/pt-BR/services/playfab/multiplayer/lobby/lobby-and-matchmaking-client-sdk-async.md)
- [SDKs de Lobby e Matchmaking do PlayFab](/pt-BR/services/playfab/multiplayer/lobby/lobby-matchmaking-sdks/lobby-matchmaking-sdks.md)
- [Início rápido do SDK de Matchmaking](/pt-BR/services/playfab/multiplayer/matchmaking/quickstart-client-sdk.md)
- [Rastreamento de diagnóstico nos SDKs de Lobby e Matchmaking do PlayFab](/pt-BR/services/playfab/multiplayer/lobby/lobby-matchmaking-sdks/lobby-matchmaking-logging.md)
