В этом документе представлен общий обзор измерения сбоев и исключений с помощью Google Analytics SDK для iOS v2.
Обзор
Измерение сбоев и исключений позволяет вам измерить количество и тип сбоев и исключений, возникающих в вашем приложении. Исключением в Google Analytics являются:
-
NSString
(Необязательно) Описание – описание исключения (до 100 символов). Принимаетnil
. -
boolean
значение isFatal – указывает, было ли исключение фатальным.YES
указывает на фатальный исход.
Данные о сбоях и исключениях доступны в основном в отчете о сбоях и исключениях.
Обнаруженные исключения
Перехваченные исключения — это ошибки в вашем приложении, для которых вы определили код обработки исключений. Как правило, это ошибки, которые, как вы ожидаете, могут возникнуть при обычном использовании вашего приложения и которые вы хотели бы, чтобы ваше приложение могло восстановиться, например, периодический тайм-аут сетевого подключения во время запроса данных.
Вы можете измерить перехваченные исключения, добавив sendException:
в блок catch
вашего кода обработки исключений.
В следующем примере приложение пытается загрузить список лучших результатов из облака. Если время запроса истечет (возможно, из-за медленного сетевого подключения), мы отправим исключение в Google Analytics, прежде чем обработать его для пользователя:
@try { NSArray *highScores = [self getHighScores]; } @catch (NSException *exception) { [tracker sendException:NO // Boolean indicates non-fatal exception. withDescription:@"Connection timout %d: %@", connectionError, errorDescription]; }
Вы можете автоматически заполнить поле описания исключения именем и причиной, используя sendException:withDescription:withNSException:
, как в этом примере:
@try { NSArray *highScores = [self getHighScores]; } @catch (NSException *exception) { [tracker sendException:NO withNSException:exception); }
Чтобы автоматически заполнить ошибку доменом ошибки, кодом и описанием, используйте sendException:withDescription:withNSError:
как показано ниже:
NSError *error = nil; if (![self updateHighScoresWithError:&error]) { [tracker sendException:NO withNSError:error); }
Измерение неперехваченных исключений
Неперехваченные исключения представляют собой случаи, когда ваше приложение сталкивалось с неожиданными условиями во время выполнения и часто было фатальным, что приводило к сбою приложения. Неперехваченные исключения можно отправлять в Google Analytics автоматически, установив для свойства sendUncaughtExceptions
значение YES
. Это можно удобно сделать из application:didFinishLaunchingWithOptions
:
- (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. }
При использовании автоматического измерения исключений имейте в виду следующее:
- Все исключения, отправленные с использованием автоматического измерения исключений, в Google Analytics считаются фатальными.
- Поле описания заполняется автоматически с использованием трассировки стека.