Dokumen ini memberikan ringkasan umum tentang pengukuran error dan pengecualian menggunakan Google Analytics SDK untuk Android v2.
Ringkasan
Pengukuran error dan pengecualian memungkinkan Anda mengukur jumlah dan jenis error dan pengecualian yang tertangkap dan tidak tertangkap yang terjadi di aplikasi Anda. Pengecualian di Google Analytics terdiri dari:
String
(Opsional) Deskripsi – deskripsi pengecualian (maksimal 100 karakter). Menerimanull
.boolean
isFatal – menunjukkan apakah pengecualian tersebut bersifat fatal atau tidak.true
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 { ArrayListhighScores = getHighScores(); // Get scores from the cloud. } catch (IOException e) { Tracker myTracker = EasyTracker.getTracker(); // Get a reference to tracker. myTracker.sendException(e.getMessage(), false); // false indicates non-fatal exception. ... // Display alert to user that high scores are currently unavailable. }
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 menggunakan EasyTracker atau class ExceptionReporter
.
Menggunakan EasyTracker
Untuk otomatis mengirim semua pengecualian yang tidak tertangkap di aplikasi Anda menggunakan EasyTracker,
tambahkan baris ini ke file analytics.xml
Anda:
<bool name="ga_reportUncaughtExceptions">true</bool>
Setelah mengirim pengecualian menggunakan pengukuran pengecualian otomatis, EasyTracker
akan meneruskan pengecualian ke pengendali pengecualian default
Thread
.
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.
Menggunakan ExceptionReporter
Gunakan class ExceptionReporter
untuk menerapkan pengukuran pengecualian
yang tidak tertangkap otomatis jika Anda tidak menggunakan EasyTracker. Ini adalah
class yang sama dengan yang diimplementasikan EasyTracker untuk menangani pelaporan pengecualian
otomatisnya.
ExceptionReporter
dapat berfungsi sebagai pengendali pengecualian default yang tidak tertangkap untuk thread tertentu atau semua thread di aplikasi Anda. Setelah mengirim pengecualian ke Google Analytics, class ExceptionReporter
dapat secara opsional meneruskan pengecualian ke pengendali pengecualian yang tidak tertangkap yang Anda berikan.
Kode berikut membuat objek ExceptionReporter
baru dan
menetapkannya sebagai pengendali pengecualian yang tidak tertangkap default baru. Akibatnya, setiap pengecualian yang tidak tertangkap akan dikirim ke Google Analytics, lalu diteruskan ke pengendali pengecualian yang tidak tertangkap sebelumnya. Untuk sebagian besar aplikasi, pengendali default akan mencatat pengecualian ke log dan menghentikan aplikasi.
UncaughtExceptionHandler myHandler = new ExceptionReporter( myTracker, // Currently used Tracker. GAServiceManager.getInstance(), // GAServiceManager singleton. Thread.getDefaultUncaughtExceptionHandler()); // Current default uncaught exception handler. // Make myHandler the new default uncaught exception handler. Thread.setDefaultUncaughtExceptionHandler(myHandler);
Menggunakan ExceptionParser
SDK menyediakan antarmuka ExceptionParser
yang dapat Anda terapkan untuk mendapatkan deskripsi yang paling relevan dari pelacakan tumpukan saat mengirim pengecualian yang tidak tertangkap ke Google Analytics. Antarmuka
ExceptionParser
memiliki satu metode:
getDescription(String threadName, Throwable t)
.
Anda dapat menetapkan Tracker
untuk menggunakan ExceptionParser
saat mengirim pengecualian yang tidak tertangkap ke Google Analytics dengan memanggil setExceptionParser(ExceptionParser parser)
seperti dalam contoh berikut:
// Where myParser represents your implementation of ExceptionParser. ExceptionParser parser = new myParser(context); // Where myTracker is an instance of Tracker. myTracker.setExceptionParser(parser);
Pelacak Anda kemudian akan menggunakan metode getDescription()
parser
untuk mengisi kolom deskripsi setiap pengecualian yang tidak tertangkap yang dikirim ke
Google Analytics.