الأعطال والاستثناءات - حزمة تطوير البرامج (SDK) لنظام التشغيل iOS

يقدِّم هذا المستند نظرة عامة عالية المستوى حول قياس الأعطال والاستثناءات باستخدام الإصدار 3 من حزمة تطوير البرامج (SDK) لخدمة "إحصاءات Google" لنظام التشغيل iOS.

نظرة عامة

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

اسم الحقل حقل أداة التتبُّع النوع مطلوبة الوصف
الوصف kGAIExDescription NSString لا وصف للاستثناء (ما يصل إلى 100 حرف). تقبل nil.
isFatal kGAIExFatal BOOL نعم تشير هذه السمة إلى ما إذا كان الاستثناء خطيرًا. تشير السمة YES إلى أنّها بالغة الوفاة.

تتوفر بيانات الأعطال والاستثناءات بشكل أساسي في تقرير الأعطال والاستثناءات.

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

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

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

/*
 * An app tries to load a list of high scores from the cloud. If the request
 * times out, an exception is sent to Google Analytics
 */
@try {

  // Request some scores from the network.
  NSArray *highScores = [self getHighScoresFromCloud];

}
@catch (NSException *exception) {

    // May return nil if a tracker has not already been initialized with a
    // property ID.
    id tracker = [[GAI sharedInstance] defaultTracker];

    [tracker send:[[GAIDictionaryBuilder
        createExceptionWithDescription:@"Connection timeout"  // Exception description. May be truncated to 100 chars.
                             withFatal:@NO] build]];  // isFatal (required). NO indicates non-fatal exception.
}

قياس الاستثناءات غير المستفادة

تمثّل الاستثناءات غير المعقّدة الحالات التي واجه فيها تطبيقك حالات غير متوقعة في وقت التشغيل وغالبًا ما تكون مميتة، ما يؤدي إلى تعطُّل التطبيق. يمكن إرسال الاستثناءات غير المكتشفة إلى "إحصاءات Google" تلقائيًا من خلال ضبط الموقع trackUncaughtExceptions على YES. مثلاً:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
  [[GAI sharedInstance] setTrackUncaughtExceptions:YES];
  return YES;
}

عند استخدام قياس الاستثناءات التلقائي، يجب مراعاة ما يلي:

  • يتم الإبلاغ عن جميع الاستثناءات التي تم إرسالها باستخدام قياس الاستثناءات التلقائي على أنّها خطيرة في "إحصاءات Google".
  • يتم ضبط حقل الوصف تلقائيًا باستخدام نوع الاستثناء واسم الفئة واسم الطريقة واسم سلسلة المحادثات.