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

Этот документ посвящен отслеживанию сбоев и исключений с помощью SDK Google Analytics для iOS версии 3.

Обзор

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

Название поля Поле трекера Тип Обязательно? Описание
Description 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 Аналитику автоматически, установив для свойства trackUncaughtExceptions значение YES. Пример:

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

О чем следует помнить, если вы используете автоматическое отслеживание исключений:

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