Kilitlenmeler ve İstisnalar - iOS SDK

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

Genel bakış

Kilitlenme ve istisna ölçümü, uygulamanızda meydana gelen kilitlenme ve istisnaların sayısını ve türünü ölçmenize olanak tanır. Google Analytics'teki bir istisna aşağıdakilerden oluşur:

  • NSString (İsteğe bağlı) Açıklama – istisnanın açıklaması (en fazla 100 karakter). nil kabul edilir.
  • boolean isFatal: İstisnanın önemli olup olmadığını gösterir. YES önemli değeri belirtir.

Kilitlenme ve istisna verileri, öncelikli olarak Kilitlenme ve İstisnalar raporunda bulunur.

Yakalanan İstisnalar

Yakalanan istisnalar, uygulamanızda istisna işleme kodu tanımladığınız hatalardır. Bunlar genellikle, veri isteği sırasında ağ bağlantısının zaman zaman aşımına uğraması gibi, uygulamanızın normal kullanımı sırasında oluşmasını beklediğiniz ve uygulamanızın kurtarılmasını istediğiniz hatalardır.

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

Aşağıdaki örnekte bir uygulama, buluttan yüksek puanların bir listesini yüklemeye çalışıyor. İstek zaman aşımına uğrarsa (örneğin, yavaş bir ağ bağlantısı nedeniyle), 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];
}

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

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

Bir hatayı, hata alanı, kod ve açıklamayla otomatik olarak doldurmak için aşağıda gösterildiği gibi sendException:withDescription:withNSError: kodunu kullanın:

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

Yakalanmamış İstisna Ölçümü

Yakalanmayan istisnalar, uygulamanızın çalışma zamanında beklenmedik koşullarla karşılaştığı ve genellikle kritik öneme sahip olarak uygulamanın kilitlenmesine neden olduğu örnekleri temsil eder. sendUncaughtExceptions özelliği YES değerine ayarlanarak Google Analytics'e otomatik olarak yakalanmamış istisnalar gönderilebilir. Bu işlem, uygulama temsilcinizin application:didFinishLaunchingWithOptions yöntemini kullanarak kolayca yapılabilir:

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