エラーと例外のレポート

警告:

に使用される標準 オブジェクトの初期化に使用される domain: String では、ハッシュ、StackTraceID、または ThreadID などの一意の文字列を使用しないでください。これらの文字列を含めると、Error Group が無数に作成され、パフォーマンスに影響を与えます。

一意のエラー文字列と値を追加するには、次の 2 つのデータ収集オプションがあります。

  • トピックパスとして文字列値を追加します。報告するイベント/エラーに単一の値が添付されている場合は、その値を leaveBreadcrumb に追加します。「トピックパス(パンくずリスト)」を参照してください
  • 文字列名と整数値を追加します。報告するイベント/エラーに名前と整数値の両方が添付されている場合は、その値を reportMetricWithName に追加します。「カスタムメトリック」を参照してください。

クラスの ADEumInstrumentation メソッドを使用して例外を報告できます。報告された例外は、セッション詳細に表示されます。

このメソッドには、次の 2 つの署名があります。

Objective-C 関数の署名説明
(void)reportError:(NSError *)error withSeverity (ADEumErrorSeverityLevel)severity;

この署名を使用してエラーを報告し、問題の重大度レベルを設定し、スタックトレースを送信します。

この関数の署名は、デフォルトでスタックトレースを送信します。スタックトレースを送信しない場合は、次の関数の署名を追加の引数 とともに使用し、その値を に設定します。

警告: に使用される標準 オブジェクトの初期化に使用される domain: String では、ハッシュ、StackTraceID、または ThreadID などの一意の文字列を使用しないでください。これらの文字列を含めると、Error Group が無数に作成され、パフォーマンスに影響を与えます。

一意のエラー文字列と値を追加するには、次の 2 つのデータ収集オプションがあります。

  • トピックパスとして文字列値を追加します。報告するイベント/エラーに単一の値が添付されている場合は、その値を leaveBreadcrumb に追加します。

    トピックパス(パンくずリスト)」を参照してください。

  • 文字列名と整数値を追加します。報告するイベント/エラーに名前と整数値の両方が添付されている場合は、その値を reportMetric に追加します。「カスタムメトリック」を参照してください。
(void)reportError:(NSError *)error withSeverity:(ADEumErrorSeverityLevel)severity andStackTrace:(BOOL)stacktrace;

この署名を使用してエラーを報告し、問題の重大度レベルを設定し、スタックトレースを含めるかどうかを明示的に指定します。

stacktrace を YES に設定して、報告されるエラーにスタックトレースを含めると、[Code Issues Details] ダイアログにスタックトレースを表示できます。

スタックトレースなしでエラーを報告するには、 を に設定します。

警告: reportError に使用される新しい throwable の構成に使用される文字列メッセージでは、ハッシュ、StackTraceID、または ThreadID などの一意の文字列を使用しないでください。これらの文字列を含めると、Error Group が無数に作成され、パフォーマンスに影響を与えます。

一意のエラー文字列と値を追加するには、次の 2 つのデータ収集オプションがあります。

  • トピックパスとして文字列値を追加します。報告するイベント/エラーに単一の値が添付されている場合は、その値を leaveBreadcrumb に追加します。

    トピックパス(パンくずリスト)」を参照してください。

  • 文字列名と整数値を追加します。報告するイベント/エラーに名前と整数値の両方が添付されている場合は、その値を reportMetric に追加します。「カスタムメトリック」を参照してください。

重要度レベル

問題に次の重大度レベルのいずれかを設定することもできます。シビラティ(重大度)レベルを使用すると、[Code Issues Dashboard] または [Code Issues Analyze] でエラーをフィルタリングできます。

  • ADEumErrorSeverityLevelInfo
  • ADEumErrorSeverityLevelWarning
  • ADEumErrorSeverityLevelCritical

エラーレポートの例

次の例では、API を使用して考えられる例外を報告し、ファイル操作の実行に失敗した場合に重大度を ADEumErrorSeverityLevelCritical に設定します。
Objective-C
NSError *err = nil;
[[NSFileManager defaultManager] contentsOfDirectoryAtPath:@"pathToFile" error:&err];
if (err) {
   [ADEumInstrumentation reportError:err withSeverity:ADEumErrorSeverityLevelCritical, andStackTrace: NO];
} else {
   ...
}
Swift
var err: Error? = nil
try? FileManager.default.contentsOfDirectory(atPath: "pathToFile")
if err != nil {
    ADEumInstrumentation.reportError(err, withSeverity: ADEumErrorSeverityLevelCritical, andStackTrace: false)
} else {
  ...
}
次のようにカスタムエラーを作成して報告することもできます。 では引数 が渡されないため、デフォルトではスタックトレースが自動的にエラーに含まれることに注意してください。
警告: に使用される標準 オブジェクトの初期化に使用される domain: String では、ハッシュ、StackTraceID、または ThreadID などの一意の文字列を使用しないでください。これらの文字列を含めると、Error Group が無数に作成され、パフォーマンスに影響を与えます。

一意のエラー文字列と値を追加するには、次の 2 つのデータ収集オプションがあります。

  • トピックパスとして文字列値を追加します。報告するイベント/エラーに単一の値が添付されている場合は、その値を leaveBreadcrumb に追加します。「トピックパス(パンくずリスト)」を参照してください。
  • 文字列名と整数値を追加します。報告するイベント/エラーに名前と整数値の両方が添付されている場合は、その値を reportMetric に追加します。「カスタムメトリック」を参照してください。
Objective-C
NSString *domain = @"com.YourCompany.AddUsers.ErrorDomain";
NSString *desc = NSLocalizedString(@"Unable to add user.", @"");
NSDictionary *userInfo = @{ NSLocalizedDescriptionKey : desc };
NSError *error = [NSError errorWithDomain:domain
                                         code:-101
                                     userInfo:userInfo];
[ADEumInstrumentation reportError:error withSeverity: ADEumErrorSeverityLevelWarning];
Swift
var domain = "com.YourCompany.AddUsers.ErrorDomain"
var desc = NSLocalizedString("Unable to add user.", comment: "")
var userInfo = [NSLocalizedDescriptionKey: desc]
var error = NSError(domain: domain, code: -101, userInfo: userInfo)
ADEumInstrumentation.reportError(error, withSeverity: ADEumErrorSeverityLevelWarning)