> ## 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.

# XErrorSetOptions

> XErrorSetOptions

# XErrorSetOptions

Especifica o comportamento desejado quando ocorre um erro no sistema operacional de jogos ou no runtime de jogos.

## Sintaxe

```cpp theme={null}
void XErrorSetOptions(  
         XErrorOptions optionsDebuggerPresent,  
         XErrorOptions optionsDebuggerNotPresent  
)  
```

### Parâmetros

*optionsDebuggerPresent*   \_In\_\
Tipo: [XErrorOptions](/pt-BR/reference/system/xerror/enums/xerroroptions)

Especifica o comportamento desejado quando o depurador está anexado.

*optionsDebuggerNotPresent*   \_In\_\
Tipo: [XErrorOptions](/pt-BR/reference/system/xerror/enums/xerroroptions)

Especifica o comportamento desejado quando o depurador não está anexado.

### Valor retornado

Tipo: void

## Comentários

<Note>Não é seguro chamar esta função em um thread sensível ao tempo. Para obter mais informações, consulte [Threads sensíveis ao tempo](https://learn.microsoft.com/gaming/gdk/docs/gdk-dev/console-dev/overviews/threads/time-sensitive-threads).</Note>

Use esta função para especificar como o jogo deve reagir quando ocorrer um erro no sistema operacional de jogos ou no runtime de jogos. Por padrão, o jogo não faz nada se um depurador não estiver anexado e gera mensagens de depuração para o depurador se ele estiver anexado.

Se um depurador estiver anexado e *optionsDebuggerPresent* estiver definido como \[XErrorOptions::DebugBreakOnError], o sistema interrompe no depurador e gera mensagens de depuração. Você pode desabilitar temporariamente esse comportamento por meio da janela de inspeção, definindo o valor da variável global `XErrorDisableDebugBreak` como `true`.

O exemplo a seguir ilustra como definir opções de erro, definir um retorno de chamada de erro personalizado e configurar o retorno de chamada personalizado para receber notificações de erro do sistema.

```cpp theme={null}
bool CustomGameXErrorCallback(_In_ HRESULT hr, _In_ const char* msg, _In_ void* context)  
{  
   // Capture the error to the game's custom logger  
   CustomGameLogger* logger = (CustomGameLogger*)context;  
   logger->ReportGameRuntimeIssue(hr, msg);  
  
   // Don't ignore the error. For example, continue on and do whatever  
   // is specified by XErrorSetOptions().  
   return true;  
}  
  
void SomeGameFunction()  
{  
   // Previously initialize the game's custom logger  
   // CustomGameLogger* m_logger = InitializeLogger();  
   // ...  
  
   // Setup how you want to handle XErrors  
   XErrorSetOptions(DebugBreakOnError, FailFastOnError);
   XErrorSetCallback(CustomGameXErrorCallback, m_logger);
}  
```

## Requisitos

**Cabeçalho:** XError.h

**Biblioteca:** xgameruntime.lib

**Plataformas compatíveis:** Windows, consoles da família XBOX One e consoles XBOX Series

## Documentação conceitual

* [Threads sensíveis ao tempo](https://learn.microsoft.com/gaming/gdk/docs/gdk-dev/console-dev/overviews/threads/time-sensitive-threads)

## Confira também

[Membros de XError](/pt-BR/reference/system/xerror/xerror_members)\
[XErrorOptions](/pt-BR/reference/system/xerror/enums/xerroroptions)


## Related topics

- [XErrorOptions](/pt-BR/reference/system/xerror/enums/xerroroptions.md)
- [XErrorCallback](/pt-BR/reference/system/xerror/functions/xerrorcallback.md)
- [XErrorSetCallback](/pt-BR/reference/system/xerror/functions/xerrorsetcallback.md)
- [Membros de XError](/pt-BR/reference/system/xerror/xerror_members.md)
- [XMemSetOption](/pt-BR/reference/system/xmem/functions/xmemsetoption.md)
