Falhas e exceções – SDK para iOS

Este documento contém uma visão geral de alto nível da avaliação de falhas e exceções usando o SDK do Google Analytics para iOS v2.

Visão geral

Com a avaliação de falhas e exceções, você pode saber o número e o tipo de falhas e exceções que ocorrem no seu app. Uma exceção no Google Analytics consiste em:

  • NSString (Opcional) Descrição: uma descrição da exceção (até 100 caracteres). Aceita nil.
  • boolean isFatal: indica se a exceção foi fatal. YES indica que foi fatal.

Os dados de falhas e exceções estão disponíveis principalmente no Relatório de falhas e exceções.

Exceções identificadas

Exceções identificadas são erros no seu app para os quais você definiu um código de processamento de exceções. Esses são geralmente erros que você espera que ocorram durante o uso normal do app e que precisam ser recuperados, como o tempo limite ocasional de uma conexão de rede durante uma solicitação de dados.

Para avaliar as exceções capturadas, adicione sendException: ao bloco catch do código de tratamento de exceções.

No exemplo a seguir, um app tenta carregar uma lista de pontuações mais altas da nuvem. Se a solicitação expirar, talvez devido a uma conexão de rede lenta, enviaremos a exceção ao Google Analytics antes de processá-la para o usuário:

@try {
  NSArray *highScores = [self getHighScores];
}
@catch (NSException *exception) {
    [tracker sendException:NO // Boolean indicates non-fatal exception.
            withDescription:@"Connection timout %d: %@", connectionError, errorDescription];
}

É possível preencher automaticamente o campo de descrição de uma exceção com o nome e o motivo usando sendException:withDescription:withNSException:, como neste exemplo:

@try {
  NSArray *highScores = [self getHighScores];
}
@catch (NSException *exception) {
  [tracker sendException:NO withNSException:exception);
}

Para preencher automaticamente um erro com o domínio, o código e a descrição do erro, use sendException:withDescription:withNSError: conforme mostrado abaixo:

NSError *error = nil;
if (![self updateHighScoresWithError:&error]) {
  [tracker sendException:NO withNSError:error);
}

Avaliação de exceções não identificadas

Exceções não identificadas representam instâncias em que o app encontrou condições inesperadas no momento da execução. Elas geralmente são fatais, fazendo com que o app falhe como resultado. As exceções não identificadas podem ser enviadas automaticamente ao Google Analytics ao definir a propriedade sendUncaughtExceptions como YES. Isso pode ser feito de forma conveniente no método application:didFinishLaunchingWithOptions do delegado do app:

- (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.
}

Ao usar a avaliação automática de exceções, lembre-se do seguinte:

  • Todas as exceções enviadas por meio da avaliação automática de exceções são informadas como fatais no Google Analytics.
  • O campo de descrição é preenchido automaticamente usando o stack trace.