Çökmeler ve İstisnalar - iOS SDK'sı

Bu dokümanda, iOS v2 için Google Analytics SDK'sı kullanılarak kilitlenme ve istisna ölçümüne üst düzey genel bakış sunulmaktadır.

Genel bakış

Kilitlenme ve istisna ölçümü, uygulamanızda meydana gelen kilitlenme ve istisna sayılarını ve türlerini ölçmenize olanak tanır. Google Analytics'te istisna şunlar içerir:

  • NSString (İsteğe bağlı) Açıklama - istisnanın açıklaması (en fazla 100 karakter). nil kabul ediliyor.
  • boolean isfatal: İstisnanın önemli olup olmadığını gösterir. YES önemli olduğunu gösterir.

Kilitlenme ve istisna verileri öncelikle Crash and Exceptions raporunda kilitlenir.

Yakalanan İstisnalar

Yakalanan istisnalar, istisna işleme kodu tanımladığınız uygulamanızda yapılan hatalardır. Bunlar genellikle, uygulamanızın normal kullanımı sırasında meydana gelmesini beklediğiniz ve uygulamanızın kurtarılmasını istediğiniz hatalardır (örneğin, veri isteği sırasında zaman zaman ağ bağlantısının zaman aşımına uğraması gibi).

İstisna işleme kodunuzun catch bloğuna sendException: ekleyerek yakalanan istisnaları ölçebilirsiniz.

Aşağıdaki örnekte, bir uygulama buluttan yüksek puanların listesini yüklemeye çalışmaktadır. İstek zaman aşımına uğrarsa (örneğin, ağ bağlantısı yavaşsa) istisnayı kullanıcı için işlemeden önce Google Analytics'e göndeririz:

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

Aşağıdaki örnekte olduğu gibi, bir istisnanın açıklama alanını sendException:withDescription:withNSException: kullanarak otomatik olarak ad ve neden kullanarak doldurabilirsiniz:

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

Hata alanı, kod ve açıklamayla ilgili bir hatayı otomatik olarak doldurmak için sendException:withDescription:withNSError: öğesini aşağıda gösterildiği şekilde kullanın:

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

Yakalanmayan İstisna Ölçümü

Yakalanmamış istisnalar, uygulamanızın çalışma zamanında beklenmeyen koşullarla karşılaştığı ve genellikle önemli olduğu durumları temsil eder. Bu durum, uygulama kilitlenmesine neden olur. sendUncaughtExceptions özelliği YES değerine ayarlanarak, yakalanmamış istisnalar Google Analytics'e otomatik olarak gönderilebilir. Bu işlemi, uygulamanızın application:didFinishLaunchingWithOptions yetkilendirme yönteminden kolayca yapabilirsiniz:

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

Otomatik istisna ölçümünü kullanırken aşağıdakileri göz önünde bulundurun:

  • Otomatik istisna ölçümü kullanılarak gönderilen tüm istisnalar, Google Analytics'te önemli olarak raporlanır.
  • Açıklama alanı, yığın izleme (stack trace) kullanılarak otomatik olarak doldurulur.