استثناها را بگیرید و رسیدگی کنید
با مجموعهها، منظم بمانید
ذخیره و طبقهبندی محتوا براساس اولویتهای شما.
Health Connect استثناهای استاندارد را برای عملیات CRUD در صورت بروز مشکل ایجاد می کند. برنامه شما باید هر یک از این استثناها را در صورت لزوم دریافت و مدیریت کند.
هر روش در HealthConnectClient
استثناهایی را که میتوان ایجاد کرد فهرست میکند. به طور کلی، برنامه شما باید استثنائات زیر را کنترل کند:
استثنا | توضیحات | بهترین عمل توصیه شده |
---|
SecurityException | زمانی که درخواستها به مجوزهایی نیاز دارند که اعطا نمیشوند، مشکلاتی پیش میآید. | برای جلوگیری از این امر، مطمئن شوید که استفاده از انواع داده Health Connect را برای برنامه منتشر شده خود اعلام کرده اید. همچنین، باید مجوزهای Health Connect را در فایل مانیفست و در فعالیت خود اعلام کنید. |
IOException | هنگام خواندن و نوشتن داده ها از دیسک مشکلاتی وجود دارد. | برای جلوگیری از این مشکل، در اینجا چند پیشنهاد وجود دارد:- از هر ورودی کاربر نسخه پشتیبان تهیه کنید.
- قادر به رسیدگی به مشکلاتی باشید که در طول عملیات نوشتن انبوه رخ می دهد. به عنوان مثال، مطمئن شوید که فرآیند از مشکل گذشته است و عملیات باقی مانده را انجام دهید.
- برای رسیدگی به مسائل درخواستی، از تلاش های مجدد و استراتژی های عقب نشینی استفاده کنید.
|
IllegalStateException | یکی از سناریوهای زیر رخ داده است:- سرویس Health Connect در دسترس نیست.
- درخواست ساخت و ساز معتبری نیست. به عنوان مثال، یک درخواست انبوه در سطل های دوره ای که در آن یک شی
Instant برای timeRangeFilter استفاده می شود.
| قبل از انجام یک درخواست، ابتدا مشکلات احتمالی ورودی ها را مدیریت کنید. ترجیحاً مقادیری را به متغیرها اختصاص دهید یا به جای استفاده مستقیم از آنها در درخواست های خود، از آنها به عنوان پارامتر در یک تابع سفارشی استفاده کنید تا بتوانید استراتژی های رسیدگی به خطا را اعمال کنید. |
RemoteException | خطاهایی در سرویس اصلی که SDK به آن متصل می شود یا در برقراری ارتباط با آن رخ داده است.
برای مثال، برنامه شما در تلاش است تا رکوردی را با یک uid مشخص حذف کند. با این حال، پس از اینکه برنامه پس از بررسی در سرویس زیربنایی متوجه شد که سابقه وجود ندارد، استثنا ایجاد می شود. | برای جلوگیری از این مشکل، در اینجا چند پیشنهاد وجود دارد:- همگامسازیهای منظمی را بین ذخیرهگاه داده برنامه و Health Connect انجام دهید.
- برای رسیدگی به مسائل درخواستی، از تلاش های مجدد و استراتژی های عقب نشینی استفاده کنید.
|
محتوا و نمونه کدها در این صفحه مشمول پروانههای توصیفشده در پروانه محتوا هستند. جاوا و OpenJDK علامتهای تجاری یا علامتهای تجاری ثبتشده Oracle و/یا وابستههای آن هستند.
تاریخ آخرین بهروزرسانی 2025-07-29 بهوقت ساعت هماهنگ جهانی.
[[["درک آسان","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-29 بهوقت ساعت هماهنگ جهانی."],[],[],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"]]