當機和例外狀況 - iOS SDK

本文件會概要說明使用 iOS v3 專用的 Google Analytics (分析) SDK 所進行的當機和例外狀況評估。

總覽

您可以透過當機和例外狀況評估功能,評估應用程式中發生的當機事件和例外狀況類型。例外狀況有下列欄位:

欄位名稱 追蹤器欄位 類型 必要 說明
說明 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.
}

未偵測到例外狀況評估

未偵測到的例外狀況代表應用程式在執行階段遇到意外狀況,且經常嚴重導致應用程式異常終止的情況。只要將 trackUncaughtExceptions 屬性設為 YES,即可自動將未偵測到的例外狀況傳送至 Google Analytics (分析)。例如:

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

使用自動例外狀況評估時,請注意下列事項:

  • 凡是使用自動例外狀況評估功能傳送的例外狀況,Google Analytics (分析) 都會將其回報為嚴重錯誤。
  • 根據預設,系統會透過例外狀況類型、類別名稱、方法名稱和執行緒名稱自動設定說明欄位。