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.