要求実行エラーの処理

Version:
日本語翻訳に関する免責事項

このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。

Universal Tracker SDKのエラー処理戦略は、次のことを目的としています。

  • アラートメッセージの作成を簡略化します。

  • デバッグに十分な情報を提供します。

簡潔で情報満載のアラート メッセージを表示するには、エラーの原因を知る必要があります。このため、.NET Frameworkによって生成されるメッセージは、要求処理フローに従ってグループ化されます。

  • ProcessUserRequestException – ユーザーの要求からHTTP要求を作成できません。

  • LoadDataFromNetworkException – TCPまたはHTTPプロトコルの物理接続エラー。

  • ParserException – サーバーの応答を適切に処理できません。

SitecoreUTSdkExceptionクラスは、すべての例外の共通の基本クラスです。

エラーを処理するための推奨される方法は次のとおりです。

try
{
	var locationEventRequest = UTRequestBuilder.LocationEvent(lat, lon)
                                             .Build(); 

  var response = await session. TrackLocationEventAsync(locationEventRequest );

// Process response
}
catch(ProcessUserRequestException) 
{
// HTTP request construction failed
}
catch(LoadDataFromNetworkException) 
{
// Connection error
}
catch(ParserException) 
{
// Server response is not valid 
}
catch(SitecoreUTSdkException) 
{
// Some Item Universal Tracker API response processing error has occurred.
// This code should not be reached in this example.
}
catch(Exception) 
{
// Some exception has been thrown.
// This code should not be reached in this example.
}

クライアント アプリケーション開発者は、Exception.InnerExceptionプロパティの元のエラー オブジェクトと、Exception.StackTraceプロパティのエラー スタック トレースにアクセスできます。

try
{
  var session = this.instanceSettings.GetSession();

  var locationEventRequest = UTRequestBuilder.LocationEvent(lat, lon)
                                             .Build(); 

  var response = await session. TrackLocationEventAsync(locationEventRequest);

// Process response
}

catch(Exception e) 
{
  Debug.WriteLine(e.Message);

  Exception originalError =  e.InnerException;
  Debug.WriteLine(originalError.Message); // access original error
  Debug.WriteLine(originalError.StackTrace);
}

冗長なコードを使用しないようにするには、SitecoreUTSdkException例外のみをキャッチし、Type.Equals() メソッドを使用して別のクラスで処理する必要があります。

try
{
  var locationEventRequest = UTRequestBuilder.LocationEvent(lat, lon)
                                             .Build(); 

  var response = await session. TrackLocationEventAsync(locationEventRequest);

// Process response
}
catch(SitecoreUTSdkException ex) 
{
  this.MyErrorProcessor.ShowAlertForSitecoreUTSdkError(ex);
}
catch(Exception ex) 
{
  this.MyErrorProcessor.ShowAlertForUnexpectedError(ex);
}
メモ

Universal Tracker SDKでは、アラートを表示するエラークラスは、ターゲットプラットフォームによって異なる場合があり、カスタマイズが必要な場合があるため、提供されていません。

この記事を改善するための提案がある場合は、 お知らせください!