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

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

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

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

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

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

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

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

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

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

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