本文件會概略說明使用 iOS v2 專用的 Google Analytics (分析) SDK 所進行的當機和例外狀況評估。
總覽
您可以透過當機和例外狀況評估,評估應用程式發生的當機和例外狀況類型。Google Analytics (分析) 的例外狀況包含:
-
NSString
(選填) 說明:例外狀況的說明 (最多 100 個半形字元)。 接受nil
。 boolean
isFatal – 表示例外狀況是否嚴重。YES
表示嚴重。
系統主要會在「當機和例外狀況」報表中提供當機和例外狀況資料。
偵測到例外狀況
「捕捉到例外狀況」是指您定義了例外狀況處理程式碼的錯誤,這些通常是您預期在正常使用應用程式期間會發生的錯誤,也是您希望應用程式復原的錯誤,例如在要求資料要求期間,網路連線有時會逾時。
您可以在例外狀況處理程式碼的 catch
區塊中加入 sendException:
,以測量偵測到的例外狀況。
在以下範例中,應用程式嘗試從雲端載入最高分清單。如果要求逾時 (可能是因為網路連線速度緩慢),我們會將例外狀況傳送至 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); }
未偵測到例外狀況評估
未偵測到的例外狀況代表應用程式在執行階段遇到意外狀況,且經常發生嚴重狀況,導致應用程式異常終止。只要將 sendUncaughtExceptions
屬性設為 YES
,即可自動將未偵測到的例外狀況傳送至 Google Analytics (分析)。只要使用應用程式委派的 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 (分析) 都會將其回報為嚴重錯誤。
- 系統會透過堆疊追蹤自動填入說明欄位。