次の方法で共有


XErrorSetOptions

ゲーム OS またはゲーム ランタイムでエラーが発生したときに必要な動作を指定します。

構文

void XErrorSetOptions(  
         XErrorOptions optionsDebuggerPresent,  
         XErrorOptions optionsDebuggerNotPresent  
)  

パラメーター

optionsDebuggerPresent _In_
型: xerroroptions

デバッガーをアタッチするときに必要な動作を指定します。

optionsDebuggerNotPresent _In_
型: xerroroptions

デバッガーをアタッチしていないときに必要な動作を指定します。

戻り値

型: void

解説

注意

この関数は、時間依存のスレッドで呼び出すのに安全ではありません。 詳細については、「時間依存のスレッド」を参照してください。

この関数を使用して、ゲーム OS またはゲーム ランタイムでエラーが発生した場合の、ゲームがどのように動作すべきかを指定します。 既定では、デバッガーがアタッチされていない場合はゲームは何も行わず、アタッチされている場合はデバッガーにデバッグメッセージが表示されます。

デバッガーがアタッチされていて optionsDebuggerPresent が [XErrorOptions::DebugBreakOnError] に設定されている場合、システムがデバッガーに割り込み、デバッグ メッセージを出力します。 この動作は、グローバル変数の値を XErrorDisableDebugBreak から true に設定することで、[ウォッチ] ウィンドウから一時的に無効にすることができます。

次の例では、エラー オプションを設定する方法、カスタム エラー コールバックを定義する方法、システムからのエラー通知を受け取るためにカスタム コールバックを設定する方法について説明します。

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);
}  

要件

ヘッダー: XError.h

ライブラリ: xgameruntime.lib

サポートされているプラットフォーム: Windows、Xbox One ファミリー本体、Xbox Series 本体

関連項目

XError メンバー
XErrorOptions