Сбои и исключения — iOS SDK

В этом документе представлен общий обзор измерения сбоев и исключений с помощью Google Analytics SDK для iOS v3.

Обзор

Измерение сбоев и исключений позволяет вам измерить количество и тип сбоев и исключений, возникающих в вашем приложении. Исключение имеет следующие поля:

Имя поля Поле трекера Тип Необходимый Описание
Описание kGAIExDescription NSString Нет Описание исключения (до 100 символов). Принимает nil .
isFatal kGAIExFatal BOOL Да Указывает, было ли исключение фатальным. YES указывает на фатальный исход.

Данные о сбоях и исключениях доступны в основном в отчете о сбоях и исключениях.

Обнаруженные исключения

Перехваченные исключения — это ошибки в вашем приложении, для которых вы определили код обработки исключений, например периодический тайм-аут сетевого подключения во время запроса данных.

Измерьте перехваченное исключение, установив значения полей исключения на трекере и отправив обращение, как в этом примере:

/*
 * 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.
}

Измерение неперехваченных исключений

Неперехваченные исключения представляют собой случаи, когда ваше приложение сталкивалось с непредвиденными условиями во время выполнения, которые часто были фатальными и приводили к сбою приложения. Неперехваченные исключения можно отправлять в Google Analytics автоматически, установив для свойства trackUncaughtExceptions значение YES . Например:

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

При использовании автоматического измерения исключений имейте в виду следующее:

  • Все исключения, отправленные с использованием автоматического измерения исключений, в Google Analytics считаются фатальными.
  • По умолчанию поле описания автоматически задается с использованием типа исключения, имени класса, имени метода и имени потока.