Crashes & Exceptions - iOS SDK

This document provides a high-level overview of crash and exception
measurement using the Google Analytics SDK for iOS v3.

Overview

Crash and exception measurement allows you to measure the number
and type of
crashes and exceptions that occur in your app. An exception
has these fields:

Field Name

Tracker Field

Type

Required

Description

Description

kGAIExDescription

NSString

No

A description of the exception (up to 100 characters). Accepts
nil.

isFatal

kGAIExFatal

BOOL

Yes

Indicates whether the exception was fatal.
YES indicates fatal.

Crash and exception data is available primarily in the Crash and Exceptions
report.

Caught Exceptions

Caught exceptions are errors in your app for which you've defined exception
handling code, such as the occasional timeout of a network connection during
a request for data.

Measure a caught exception by setting the exception field values
on the tracker and sending the hit, as in this example:

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

Uncaught Exception Measurement

Uncaught exceptions represent instances where your app encountered
unexpected conditions at runtime and are often fatal, causing the app to crash.
Uncaught exceptions can be sent to Google Analytics automatically
by setting the trackUncaughtExceptions
property to YES. For example: