رصد الاستثناءات والتعامل معها

يفرض تطبيق Health Connect الاستثناءات القياسية على عمليات CRUD عندما تكون هناك مشكلة. واجهناها. يجب أن يكتشف تطبيقك كل هذه الاستثناءات ويتعامل معها مناسبًا.

تسرد كل طريقة في HealthConnectClient الاستثناءات التي يمكن طرحها. بشكل عام، يجب أن يتعامل تطبيقك مع الاستثناءات التالية:

استثناء الوصف أفضل الممارسات المقترَحة
SecurityException حدثت مشاكل عندما تتطلب الطلبات الأذونات التي لم يتم منحها. لتجنب هذا، تأكد من الاستخدام المُعلَن عنه لأنواع بيانات Health Connect في البيانات المنشورة التطبيق. عليك أيضًا الإفصاح عن أذونات Health Connect. في ملف البيان وفي نشاطك

IOException توجد مشكلات تمت مواجهتها عند قراءة البيانات وكتابتها من القرص. لتجنّب هذه المشكلة، إليك بعض الاقتراحات:

  • الاحتفاظ بنسخة احتياطية من أي بيانات أدخلها المستخدم
  • القدرة على معالجة أي مشكلات تحدث أثناء عمليات الكتابة المجمّعة. بالنسبة على سبيل المثال، تأكد من أن العملية تتجاوز المشكلة وتنفيذ العمليات المتبقية.
  • تطبيق استراتيجيات إعادة المحاولة والتراجع لمعالجة مشاكل الطلب.

IllegalStateException وقد حدث أحد السيناريوهات التالية:

  • خدمة Health Connect غير متاحة.
  • بنية الطلب غير صالحة. على سبيل المثال، قد يتضمن طلب تجميعي مجموعات البيانات الدورية التي يتم فيها استخدام الكائن Instant للسمة timeRangeFilter.

تعامل مع المشاكل المحتملة مع المدخلات أولاً قبل تقديم الطلب. يُفضَّل تحديد قيم للمتغيّرات أو استخدامها كمَعلمات داخل وحدة مخصَّصة بدلاً من استخدامها مباشرةً في طلباتك حتى تتمكن من تطبيق استراتيجيات التعامل مع الأخطاء.
RemoteException حدثت أخطاء خلال الاتصال أو أثناء الاتصال الخدمة الأساسية التي تتصل بها حزمة SDK.

على سبيل المثال، يحاول تطبيقك حذف سجلّ باستخدام uid محدّد. ومع ذلك، فإنّ الاستثناء بعد أن يكتشف التطبيق، عند التحقق في الخدمة الأساسية، عدم وجود السجل.
لتجنّب هذه المشكلة، إليك بعض الاقتراحات:

  • يمكنك إجراء عمليات مزامنة منتظمة بين مخزن بيانات تطبيقك وتطبيق Health Connect.
  • تطبيق استراتيجيات إعادة المحاولة والتراجع لمعالجة مشاكل الطلب.