Błędy i wyjątki – pakiet SDK na iOS

Ten dokument zawiera ogólny opis metod pomiaru awarii i wyjątków za pomocą pakietu SDK Google Analytics na iOS w wersji 3.

Przegląd

Pomiar awarii i wyjątków pozwala mierzyć liczbę oraz rodzaj awarii i wyjątków, które występują w aplikacji. Wyjątkiem są te pola:

Nazwa pola Pole skryptu śledzenia Typ Wymagane Opis
Opis kGAIExDescription NSString Nie Opis wyjątku (maksymalnie 100 znaków). Akceptuje nil.
isFatal kGAIExFatal BOOL Tak Wskazuje, czy wyjątek był krytyczny. YES oznacza błąd krytyczny.

Dane o awariach i wyjątkach są dostępne przede wszystkim w raporcie o awariach i wyjątkach.

Złapane wyjątki

Wykryte wyjątki to błędy w aplikacji, w przypadku których zdefiniujesz kod obsługi wyjątków. Może to być na przykład rzadki limit czasu połączenia z siecią podczas żądania danych.

Aby określić zarejestrowany wyjątek, ustaw wartości pól wyjątków w narzędziu do śledzenia i wyślij działanie, jak w tym przykładzie:

/*
 * An app tries to load a list of high scores from the cloud. If the request
 * times out, an exception is sent to Google Analytics
 */
@try {

  // Request some scores from the network.
  NSArray *highScores = [self getHighScoresFromCloud];

}
@catch (NSException *exception) {

    // May return nil if a tracker has not already been initialized with a
    // property ID.
    id tracker = [[GAI sharedInstance] defaultTracker];

    [tracker send:[[GAIDictionaryBuilder
        createExceptionWithDescription:@"Connection timeout"  // Exception description. May be truncated to 100 chars.
                             withFatal:@NO] build]];  // isFatal (required). NO indicates non-fatal exception.
}

Pomiar niewykrytych wyjątków

Nieobsłużone wyjątki to przypadki, w których aplikacja napotkała nieoczekiwane warunki w czasie działania i często są krytyczne, powodując jej awarię. Niewykryte wyjątki mogą być wysyłane do Google Analytics automatycznie po ustawieniu właściwości trackUncaughtExceptions na YES. Przykład:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
  [[GAI sharedInstance] setTrackUncaughtExceptions:YES];
  return YES;
}

Jeśli korzystasz z automatycznego pomiaru wyjątków, pamiętaj o tych kwestiach:

  • Wszystkie wyjątki wysłane za pomocą automatycznego pomiaru wyjątków są zgłaszane w Google Analytics jako krytyczne.
  • Domyślnie pole opisu jest ustawiane automatycznie z użyciem typu wyjątku, nazwy klasy, nazwy metody i nazwy wątku.