Error & Pengecualian - iOS SDK

Dokumen ini memberikan ringkasan umum tentang pengukuran error dan pengecualian menggunakan Google Analytics SDK untuk iOS v2.

Ringkasan

Pengukuran error dan pengecualian memungkinkan Anda mengukur jumlah dan jenis error dan pengecualian yang terjadi di aplikasi Anda. Pengecualian di Google Analytics terdiri dari:

  • NSString (Opsional) Deskripsi – deskripsi pengecualian (maksimal 100 karakter). Menerima nil.
  • boolean isFatal – menunjukkan apakah pengecualian tersebut bersifat fatal atau tidak. YES menunjukkan fatal.

Data error dan pengecualian hanya tersedia di laporan Error dan Pengecualian.

Pengecualian yang Tertangkap

Pengecualian yang tertangkap adalah error di aplikasi yang kode penanganan pengecualiannya telah Anda tentukan. Umumnya ini adalah error yang diperkirakan akan terjadi selama penggunaan normal aplikasi, dan Anda ingin aplikasi dapat dipulihkan, seperti waktu tunggu koneksi jaringan sesekali berlangsung selama permintaan data.

Anda dapat mengukur pengecualian yang tertangkap dengan menambahkan sendException: ke blok catch kode penanganan pengecualian Anda.

Pada contoh berikut, aplikasi mencoba memuat daftar skor tertinggi dari cloud. Jika waktu tunggu permintaan habis, mungkin karena koneksi jaringan yang lambat, kami akan mengirimkan pengecualian ke Google Analytics sebelum menanganinya untuk pengguna:

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

Anda dapat mengisi kolom deskripsi pengecualian secara otomatis dengan nama dan alasan menggunakan sendException:withDescription:withNSException:, seperti dalam contoh ini:

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

Untuk mengisi error secara otomatis dengan domain, kode, dan deskripsi error, gunakan sendException:withDescription:withNSError: seperti yang terlihat di bawah:

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

Pengukuran Pengecualian yang Tidak Tertangkap

Pengecualian yang tidak tertangkap mewakili instance saat aplikasi mengalami kondisi yang tidak terduga pada runtime dan sering bersifat fatal, sehingga menyebabkan aplikasi error. Pengecualian yang tidak tertangkap dapat otomatis dikirim ke Google Analytics dengan menetapkan properti sendUncaughtExceptions ke YES. Hal ini dapat dilakukan dengan mudah dari metode application:didFinishLaunchingWithOptions delegasi aplikasi Anda:

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

Saat menggunakan pengukuran pengecualian otomatis, perhatikan hal berikut:

  • Semua pengecualian yang dikirim menggunakan pengukuran pengecualian otomatis dilaporkan sebagai fatal di Google Analytics.
  • Kolom deskripsi diisi secara otomatis menggunakan pelacakan tumpukan.