จับและจัดการข้อยกเว้น
จัดทุกอย่างให้เป็นระเบียบอยู่เสมอด้วยคอลเล็กชัน
บันทึกและจัดหมวดหมู่เนื้อหาตามค่ากำหนดของคุณ
Health Connect แสดงข้อยกเว้นมาตรฐานสำหรับการดำเนินการ CRUD เมื่อปัญหาคือ
ที่พบ แอปของคุณควรตรวจพบและจัดการข้อยกเว้นแต่ละรายการเหล่านี้ตาม
เหมาะสม
แต่ละเมธอดใน HealthConnectClient
จะแสดงข้อยกเว้นที่โยนได้
โดยทั่วไป แอปของคุณควรจัดการกับข้อยกเว้นต่อไปนี้
ข้อยกเว้น |
คำอธิบาย |
แนวทางปฏิบัติแนะนำ |
SecurityException
| พบปัญหาเมื่อคำขอต้องการ
สิทธิ์ที่ไม่ได้รับสิทธิ์
| เพื่อหลีกเลี่ยงปัญหานี้ โปรดตรวจสอบว่าคุณ
การใช้ประเภทข้อมูล Health Connect ที่ได้ประกาศไว้สำหรับที่เผยแพร่
แอป นอกจากนี้ คุณต้องประกาศสิทธิ์ของ Health Connect
ในไฟล์ Manifest และในกิจกรรมของคุณ
|
IOException
| พบปัญหาขณะอ่านและเขียนข้อมูลจาก
| เพื่อหลีกเลี่ยงปัญหานี้ เรามีคำแนะนำดังนี้
- โปรดสำรองข้อมูลที่ผู้ใช้ป้อนไว้
- จัดการกับปัญหาที่เกิดขึ้นระหว่างการเขียนจำนวนมากได้ สำหรับ
ตัวอย่างเช่น ตรวจสอบว่ากระบวนการ
ผ่านพ้นปัญหาไปและดําเนินการ
การดำเนินงานที่เหลือ
- ใช้กลยุทธ์การลองใหม่และ Backoff เพื่อจัดการปัญหาคำขอ
|
IllegalStateException
| เกิดสถานการณ์ใดสถานการณ์หนึ่งต่อไปนี้
- บริการ Health Connect ไม่พร้อมใช้งาน
- คำขอนี้ไม่ใช่โครงสร้างที่ถูกต้อง ตัวอย่างเช่น คำขอแบบรวมใน
ที่เก็บข้อมูลเป็นระยะที่ใช้ออบเจ็กต์
Instant สำหรับ timeRangeFilter
| จัดการปัญหาที่อาจเกิดขึ้นกับอินพุตก่อนที่จะส่งคำขอ
โปรดกำหนดค่าให้กับตัวแปรหรือใช้เป็นพารามิเตอร์ภายในที่กำหนดเอง
แทนการใช้คำร้องขอโดยตรง เพื่อให้คุณสามารถใช้
การจัดการข้อผิดพลาด
|
RemoteException
| มีข้อผิดพลาดเกิดขึ้นภายใน หรือในการสื่อสาร
กับบริการพื้นฐานที่ SDK เชื่อมต่อด้วย
ตัวอย่างเช่น
แอปของคุณพยายามลบระเบียนที่มี uid ที่ระบุ แต่ข้อยกเว้น
ถูกโยนทิ้งไว้หลังจากที่แอปตรวจพบเมื่อตรวจสอบในบริการพื้นฐานที่
ไม่มีระเบียน
| เพื่อหลีกเลี่ยงปัญหานี้ เรามีคำแนะนำดังนี้
- ซิงค์พื้นที่เก็บข้อมูลของแอปกับ Health Connect เป็นประจำ
- ใช้กลยุทธ์การลองใหม่และ Backoff เพื่อจัดการปัญหาคำขอ
|
ตัวอย่างเนื้อหาและโค้ดในหน้าเว็บนี้ขึ้นอยู่กับใบอนุญาตที่อธิบายไว้ในใบอนุญาตการใช้เนื้อหา Java และ OpenJDK เป็นเครื่องหมายการค้าหรือเครื่องหมายการค้าจดทะเบียนของ Oracle และ/หรือบริษัทในเครือ
อัปเดตล่าสุด 2025-07-27 UTC
[[["เข้าใจง่าย","easyToUnderstand","thumb-up"],["แก้ปัญหาของฉันได้","solvedMyProblem","thumb-up"],["อื่นๆ","otherUp","thumb-up"]],[["ไม่มีข้อมูลที่ฉันต้องการ","missingTheInformationINeed","thumb-down"],["ซับซ้อนเกินไป/มีหลายขั้นตอนมากเกินไป","tooComplicatedTooManySteps","thumb-down"],["ล้าสมัย","outOfDate","thumb-down"],["ปัญหาเกี่ยวกับการแปล","translationIssue","thumb-down"],["ตัวอย่าง/ปัญหาเกี่ยวกับโค้ด","samplesCodeIssue","thumb-down"],["อื่นๆ","otherDown","thumb-down"]],["อัปเดตล่าสุด 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"]]