Abstürze und Ausnahmen – iOS SDK

Dieses Dokument bietet eine allgemeine Übersicht über die Messung von Abstürzen und Ausnahmen mit dem Google Analytics SDK für iOS Version 2.

Überblick

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

  • NSString (Optional) Beschreibung: Die Beschreibung der Ausnahme (bis zu 100 Zeichen). Akzeptiert nil.
  • boolean isFatal: Gibt an, ob die Ausnahme ein schwerwiegender Fehler war. YES weist auf einen schwerwiegenden Fehler hin.

Absturz- und Ausnahmedaten sind hauptsächlich im Absturz- und Ausnahmebericht verfügbar.

Abgefangene Ausnahmen

Abgefangene Ausnahmen sind Fehler in Ihrer App, für die Sie Code für die Ausnahmebehandlung definiert haben. Dabei handelt es sich in der Regel um Fehler, die bei normaler Verwendung Ihrer App auftreten und diese wiederhergestellt werden können, z. B. die gelegentliche Zeitüberschreitung einer Netzwerkverbindung bei einer Datenanfrage.

Sie können erfasste Ausnahmen messen. Dazu fügen Sie sendException: in den Block catch Ihres Codes zur Ausnahmebehandlung ein.

Im folgenden Beispiel versucht eine Anwendung, eine Liste von Highscores aus der Cloud zu laden. Wenn bei der Anfrage eine Zeitüberschreitung auftritt, etwa aufgrund einer langsamen Netzwerkverbindung, senden wir die Ausnahme an Google Analytics, bevor wir sie für den Nutzer verarbeiten:

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

Sie können das Beschreibungsfeld einer Ausnahme automatisch mit dem Namen und dem Grund füllen. Verwenden Sie dazu sendException:withDescription:withNSException: wie im folgenden Beispiel:

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

Um einen Fehler automatisch mit Fehlerdomain, Fehlercode und Beschreibung auszufüllen, verwenden Sie sendException:withDescription:withNSError: wie unten gezeigt:

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

Messung nicht abgefangener Ausnahmen

Nicht abgefangene Ausnahmen stellen Instanzen dar, bei denen während der Laufzeit unerwartete Bedingungen in der App aufgetreten sind. Diese sind häufig schwerwiegend und führen deshalb zum Absturz der App. Nicht abgefangene Ausnahmen können automatisch an Google Analytics gesendet werden. Dazu setzen Sie die Property sendUncaughtExceptions auf YES. Das geht ganz bequem über die Methode application:didFinishLaunchingWithOptions des App-Bevollmächtigten:

- (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 automatischen Messung von Ausnahmen Folgendes:

  • Alle Ausnahmen, die mit der automatischen Ausnahmemessung gesendet werden, werden in Google Analytics als schwerwiegend gemeldet.
  • Das Beschreibungsfeld wird über den Stacktrace automatisch ausgefüllt.