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 2.

Przegląd

Pomiary awarii i wyjątków pozwalają mierzyć liczbę oraz rodzaj awarii i wyjątków, które występują w aplikacji. Wyjątek w tej usłudze obejmuje:

  • NSString(Opcjonalnie) Opis – opis wyjątku (maksymalnie 100 znaków). Akceptuje: nil.
  • boolean isFatal – 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, dla których masz zdefiniowany kod obsługi wyjątków. Są to zwykle błędy, które mogą wystąpić podczas normalnego używania aplikacji, a które powinny być możliwe do odzyskania. Mogą to być na przykład sporadyczne przekroczenie limitu czasu połączenia sieciowego podczas żądania danych.

Aby mierzyć wykryte wyjątki, dodaj sendException: do bloku catch kodu obsługi wyjątków.

W poniższym przykładzie aplikacja próbuje wczytać listę najlepszych wyników z chmury. Jeśli limit czasu żądania zostanie przekroczony (np. z powodu wolnego połączenia sieciowego), wyślemy wyjątek do Google Analytics przed przetworzeniem żądania w imieniu użytkownika:

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

Możesz automatycznie wypełnić pole opisu wyjątku, podając nazwę i przyczynę, korzystając z funkcji sendException:withDescription:withNSException:, jak w tym przykładzie:

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

Aby automatycznie wstawić do błędu domenę, kod i opis błędu, wpisz sendException:withDescription:withNSError:, jak pokazano poniżej:

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

Pomiar niewykrytych wyjątków

Niewykryte wyjątki to przypadki, w których aplikacja napotkała nieoczekiwane warunki w czasie działania i często są one krytyczne, co prowadzi do awarii aplikacji. Niewykryte wyjątki mogą być wysyłane do Google Analytics automatycznie po ustawieniu właściwości sendUncaughtExceptions na YES. Można to zrobić wygodnie za pomocą metody application:didFinishLaunchingWithOptions przedstawiciela aplikacji:

- (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.
}

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.
  • Pole opisu jest wypełniane automatycznie za pomocą zrzutu stosu.