איתור חריגים וטיפול בהם

Health Connect מקפיצה חריגות רגילות לפעולות CRUD כאשר יש בעיה המערכת נתקלה בבעיה. האפליקציה שלך צריכה לזהות כל אחד מהחריגים האלה ולטפל בהם בתור המתאים.

כל שיטה ב-HealthConnectClient מציגה את רשימת החריגים שאפשר להשליך. באופן כללי, האפליקציה צריכה לטפל בחריגים הבאים:

חריג תיאור שיטה מומלצת
SecurityException יש בעיות שהבקשות מצריכות הרשאות שלא הוענקו. כדי להימנע מכך, חשוב להקפיד שימוש מוצהר בסוגי הנתונים של Health Connect בתוכן שפורסם אפליקציה. בנוסף, צריך להצהיר על הרשאות של Health Connect בקובץ המניפסט ובפעילות שלכם.

IOException יש בעיות במהלך קריאה וכתיבה של נתונים מתוך לדיסק און קי. כדי למנוע מראש את הבעיה, הנה כמה הצעות:

  • גיבוי כל הקלט של המשתמשים.
  • להיות מסוגלים לטפל בבעיות שמתרחשות במהלך פעולות של כתיבה בכמות גדולה. עבור לדוגמה, ודאו שהתהליך עובר מעבר לבעיה ומבצעים את הפעולות שנותרו.
  • להחיל אסטרטגיות של ניסיונות חוזרים והשהיה לפני ניסיון חוזר (backoff) כדי לטפל בבעיות של בקשות.

IllegalStateException אחד מהתרחישים הבאים מתרחש:

  • שירות Health Connect לא זמין.
  • הבקשה היא לא מבנה חוקי. לדוגמה, בקשה מצטברת ב- קטגוריות תקופתיות שבהן נעשה שימוש באובייקט Instant בשביל timeRangeFilter.

לפני ששולחים בקשה, צריך קודם לטפל בבעיות אפשריות בקלט. עדיף להקצות ערכים למשתנים או להשתמש בהם כפרמטרים בתוך במקום להשתמש בהם ישירות בבקשות, כך שאפשר להחיל אסטרטגיות לטיפול בשגיאות.
RemoteException אירעו שגיאות במהלך התקשורת או במהלך התקשורת בשירות הבסיסי שאליו ה-SDK מתחבר.

למשל, האפליקציה שלך מנסה למחוק רשומה עם uid נתון. עם זאת, יוצא הדופן מועברת אחרי שהאפליקציה מגלה בבדיקה בשירות הבסיסי הרשומה לא קיימת.
כדי למנוע מראש את הבעיה, הנה כמה הצעות:

  • רצוי לסנכרן באופן קבוע בין מאגר הנתונים של האפליקציה לבין Health Connect.
  • להחיל אסטרטגיות של ניסיונות חוזרים והשהיה לפני ניסיון חוזר (backoff) כדי לטפל בבעיות של בקשות.