Arresti anomali ed eccezioni - SDK per iOS

Questo documento fornisce una panoramica generale della misurazione di arresti anomali ed eccezioni utilizzando l'SDK di Google Analytics per iOS v2.

Panoramica

La misurazione degli arresti anomali e delle eccezioni consente di misurare il numero e il tipo di arresti anomali ed eccezioni che si verificano nella tua app. Un'eccezione in Google Analytics consiste in:

  • NSString (Facoltativo) Descrizione: una descrizione dell'eccezione (fino a 100 caratteri). Accetta nil.
  • boolean isFatal: indica se l'eccezione è stata irreversibile. YES indica che è irreversibile.

I dati su arresti anomali ed eccezioni sono disponibili principalmente nel report Arresti anomali ed eccezioni.

Eccezioni rilevate

Le eccezioni rilevate sono errori nell'app per i quali hai definito il codice di gestione delle eccezioni. Si tratta in genere di errori che prevedi si verifichino durante il normale utilizzo dell'app e da cui vorresti che l'app sia in grado di recuperare, ad esempio il timeout occasionale di una connessione di rete durante una richiesta di dati.

Puoi misurare le eccezioni rilevate aggiungendo sendException: al blocco catch del codice per la gestione delle eccezioni.

Nell'esempio seguente, un'app tenta di caricare un elenco dei punteggi migliori dal cloud. Se la richiesta scade, magari a causa di una connessione di rete lenta, invieremo l'eccezione a Google Analytics prima di gestirla per l'utente:

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

Puoi completare automaticamente il campo della descrizione di un'eccezione con il nome e il motivo utilizzando sendException:withDescription:withNSException:, come in questo esempio:

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

Per completare automaticamente un errore con il dominio, il codice e la descrizione dell'errore, utilizza sendException:withDescription:withNSError: come mostrato di seguito:

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

Misurazione eccezioni non rilevate

Le eccezioni non rilevate rappresentano i casi in cui l'app ha riscontrato condizioni impreviste in fase di runtime e spesso sono irreversibili, causando l'arresto anomalo dell'app. Le eccezioni non rilevate possono essere inviate automaticamente a Google Analytics impostando la proprietà sendUncaughtExceptions su YES. Questa operazione può essere eseguita comodamente dal metodo application:didFinishLaunchingWithOptions del delegato dell'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.
}

Quando utilizzi la misurazione delle eccezioni automatica, tieni presente quanto segue:

  • Tutte le eccezioni inviate utilizzando la misurazione delle eccezioni automatica vengono registrate come irreversibili in Google Analytics.
  • Il campo della descrizione viene compilato automaticamente utilizzando l'analisi dello stack.