Menangkap dan menangani pengecualian
Tetap teratur dengan koleksi
Simpan dan kategorikan konten berdasarkan preferensi Anda.
Health Connect menerapkan pengecualian standar untuk operasi CRUD saat terjadi
masalah. Aplikasi Anda harus menangkap dan menangani setiap pengecualian ini
sebagaimana mestinya.
Setiap metode di HealthConnectClient
mencantumkan pengecualian yang dapat diterapkan.
Secara umum, aplikasi Anda harus menangani pengecualian berikut:
Pengecualian |
Deskripsi |
Praktik terbaik yang direkomendasikan |
SecurityException
| Ada masalah yang muncul saat permintaan memerlukan
izin yang tidak diberikan.
| Untuk menghindari hal ini, pastikan Anda telah
deklarasi penggunaan jenis data Health Connect untuk laporan
. Selain itu, Anda harus mendeklarasikan izin Health Connect
dalam file manifes dan dalam aktivitas Anda.
|
IOException
| Terjadi masalah saat membaca dan menulis data dari
disk.
| Untuk menghindari masalah ini, berikut beberapa saran:
- Cadangkan input pengguna.
- Dapat menangani masalah apa pun yang terjadi selama operasi tulis massal. Misalnya,
pastikan proses melalui masalah, lalu lakukan
operasi lainnya.
- Terapkan percobaan ulang dan strategi backoff untuk menangani masalah permintaan.
|
IllegalStateException
| Salah satu skenario berikut terjadi:
- Layanan Health Connect tidak tersedia.
- Permintaan ini bukan konstruksi yang valid. Misalnya, permintaan gabungan dalam
bucket berkala tempat objek
Instant digunakan untuk timeRangeFilter .
| Tangani kemungkinan masalah dengan input terlebih dahulu sebelum melakukan permintaan.
Sebaiknya, tetapkan nilai ke variabel atau gunakan sebagai parameter dalam fungsi
kustom, bukan menggunakannya langsung dalam permintaan, sehingga Anda dapat menerapkan
strategi penanganan error.
|
RemoteException
| Error terjadi dalam, atau saat berkomunikasi
dengan, layanan dasar yang terhubung dengan SDK.
Misalnya,
aplikasi Anda mencoba menghapus data dengan uid yang ditentukan. Namun, pengecualian
diterapkan setelah aplikasi mengetahui saat memeriksa layanan dasar bahwa
data tersebut tidak ada.
| Untuk menghindari masalah ini, berikut beberapa saran:
- Lakukan sinkronisasi reguler antara datastore aplikasi dan Health Connect aplikasi Anda.
- Terapkan percobaan ulang dan strategi backoff untuk menangani masalah permintaan.
|
Konten dan contoh kode di halaman ini tunduk kepada lisensi yang dijelaskan dalam Lisensi Konten. Java dan OpenJDK adalah merek dagang atau merek dagang terdaftar dari Oracle dan/atau afiliasinya.
Terakhir diperbarui pada 2025-07-27 UTC.
[[["Mudah dipahami","easyToUnderstand","thumb-up"],["Memecahkan masalah saya","solvedMyProblem","thumb-up"],["Lainnya","otherUp","thumb-up"]],[["Informasi yang saya butuhkan tidak ada","missingTheInformationINeed","thumb-down"],["Terlalu rumit/langkahnya terlalu banyak","tooComplicatedTooManySteps","thumb-down"],["Sudah usang","outOfDate","thumb-down"],["Masalah terjemahan","translationIssue","thumb-down"],["Masalah kode / contoh","samplesCodeIssue","thumb-down"],["Lainnya","otherDown","thumb-down"]],["Terakhir diperbarui pada 2025-07-27 UTC."],[],[],null,["# Catch and handle exceptions\n\nHealth Connect throws standard exceptions for CRUD operations when an issue is\nencountered. Your app should catch and handle each of these exceptions as\nappropriate.\n\nEach method on `HealthConnectClient` lists the exceptions that can be thrown.\nIn general, your app should handle the following exceptions:\n\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n| **Exception** | **Description** | **Recommended best practice** |\n|-------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| `SecurityException` | There are issues encountered when the requests require permissions that aren't granted. | To avoid this, make sure that you've [declared use of Health Connect data types](/guide/health-and-fitness/health-connect/develop/frequently-asked-questions#declare-access) for your published app. Also, you must declare Health Connect permissions [in the manifest file](/guide/health-and-fitness/health-connect/develop/get-started#step-3) and [in your activity](/guide/health-and-fitness/health-connect/develop/get-started#step-4). \u003cbr /\u003e \u003cbr /\u003e |\n| `IOException` | There are issues encountered upon reading and writing data from disk. | To avoid this issue, here are some suggestions: \u003cbr /\u003e - Back up any user input. - Be able to handle any issues that occur during bulk write operations. For example, make sure the process moves past the issue and carry out the remaining operations. - Apply retries and backoff strategies to handle request issues. \u003cbr /\u003e |\n| `IllegalStateException` | One of the following scenarios has occurred: \u003cbr /\u003e - The Health Connect service isn't available. - The request isn't a valid construction. For example, an aggregate request in periodic buckets where an `Instant` object is used for the `timeRangeFilter`. \u003cbr /\u003e | Handle possible issues with the inputs first before doing a request. Preferably, assign values to variables or use them as parameters within a custom function instead of using them directly in your requests so that you can apply error handling strategies. |\n| `RemoteException` | Errors have occurred within, or in communicating with, the underlying service to which the SDK connects. For example, your app is trying to delete a record with a given `uid`. However, the exception is thrown after the app finds out upon checking in the underlying service that the record doesn't exist. | To avoid this issue, here are some suggestions: \u003cbr /\u003e - Perform regular syncs between your app's datastore and Health Connect. - Apply retries and backoff strategies to handle request issues. \u003cbr /\u003e |\n\n\u003cbr /\u003e"]]