Abstürze &Ausnahmen - iOS SDK

Dieses Dokument bietet einen allgemeinen Überblick über die Absturz- und Ausnahmemessung mit dem Google Analytics SDK für iOS Version 2.

Übersicht

Mit der Messung von Abstürzen und Ausnahmen können Sie die Anzahl und Art von Abstürzen und Ausnahmen in Ihrer App messen. Eine Ausnahme in Google Analytics besteht aus:

  • NSString Optional: Eine Beschreibung der Ausnahme (maximal 100 Zeichen). Akzeptiert nil.
  • boolean isFatal: Gibt an, ob die Ausnahme schwerwiegend war. YES weist auf einen schwerwiegenden Fehler hin.

Absturz- und Ausnahmedaten sind in erster Linie im Bericht zu Abstürzen und Ausnahmen verfügbar.

Erfasste Ausnahmen

Abgefangene Ausnahmen sind Fehler in Ihrer App, für die Sie Code zur Ausnahmebehandlung definiert haben. In der Regel handelt es sich dabei um Fehler, die bei der normalen Verwendung der App wahrscheinlich auftreten und von denen Sie möchten, dass sie wiederhergestellt werden, beispielsweise eine gelegentliche Zeitüberschreitung einer Netzwerkverbindung bei einer Datenanfrage.

Sie können erfasste Ausnahmen messen, indem Sie sendException: in den Block catch Ihres Ausnahmebehandlungscodes einfügen.

Im folgenden Beispiel versucht eine App, eine Liste von Highscores aus der Cloud zu laden. Wenn es bei der Anfrage zu einer Zeitüberschreitung kommt, z. B. aufgrund einer langsamen Netzwerkverbindung, wird die Ausnahme an Google Analytics gesendet, bevor sie für den Nutzer verarbeitet wird:

@try {
  NSArray *highScores = [self getHighScores];
}
@catch (NSException *exception) {
    [tracker sendException:NO // Boolean indicates non-fatal exception.
            withDescription:@"Connection timout %d: %@", connectionError, errorDescription];
}

Mit sendException:withDescription:withNSException: können Sie das Beschreibungsfeld einer Ausnahme automatisch mit dem Namen und Grund füllen, wie in diesem Beispiel:

@try {
  NSArray *highScores = [self getHighScores];
}
@catch (NSException *exception) {
  [tracker sendException:NO withNSException:exception);
}

Verwenden Sie sendException:withDescription:withNSError:, um einen Fehler automatisch mit der Fehlerdomain, dem Code und der Beschreibung zu füllen:

NSError *error = nil;
if (![self updateHighScoresWithError:&error]) {
  [tracker sendException:NO withNSError:error);
}

Messung nicht erfasster Ausnahmen

Nicht abgefangene Ausnahmen stellen Instanzen dar, bei denen Ihre Anwendung zur Laufzeit unerwartete Bedingungen erfüllt hat und oft tödlich ist, was dazu führt, dass die App abstürzt. Nicht erfasste Ausnahmen können automatisch an Google Analytics gesendet werden. Dazu müssen Sie die Property sendUncaughtExceptions auf YES setzen. Das lässt sich bequem über die application:didFinishLaunchingWithOptions-Methode der Bevollmächtigten tun:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
  [GAI sharedInstance].sendUncaughtExceptions = YES; // Enable 

  // ... the rest of your code, include other GAI properties you want to set.
}

Beachten Sie bei der Verwendung der automatischen Ausnahmemessung Folgendes:

  • Alle mit der automatischen Ausnahmemessung gesendeten Ausnahmen werden in Google Analytics als schwerwiegend gemeldet.
  • Das Feld „Beschreibung“ wird automatisch mit dem Stacktrace ausgefüllt.