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

В этом документе представлен общий обзор измерения сбоев и исключений с помощью 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 считаются фатальными.
  • Поле описания заполняется автоматически с использованием трассировки стека.