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

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

نظرة عامة

يسمح لك قياس الأعطال والاستثناءات بقياس عدد الأعطال والاستثناءات التي تحدث في تطبيقك ونوعها. ويتألّف استثناء في "إحصاءات Google" من:

  • NSString (اختياري) الوصف: وصف للاستثناء (ما يصل إلى 100 حرف). تقبل nil.
  • boolean isFatal – ما إذا كان الاستثناء خطيرًا. تشير السمة YES إلى أنّها بالغة الوفاة.

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

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

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

يمكنك قياس الاستثناءات التي تم رصدها من خلال إضافة sendException: إلى المجموعة catch من رمز معالجة الاستثناء.

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

@try {
  NSArray *highScores = [self getHighScores];
}
@catch (NSException *exception) {
    [tracker sendException:NO // Boolean indicates non-fatal exception.
            withDescription:@"Connection timout %d: %@", connectionError, errorDescription];
}

يمكنك تعبئة حقل الوصف للاستثناء تلقائيًا بالاسم والسبب باستخدام sendException:withDescription:withNSException:، كما في هذا المثال:

@try {
  NSArray *highScores = [self getHighScores];
}
@catch (NSException *exception) {
  [tracker sendException:NO withNSException:exception);
}

لتعبئة الخطأ تلقائيًا بنطاق الخطأ ورمزه ووصفه، استخدِم sendException:withDescription:withNSError: كما هو موضّح أدناه:

NSError *error = nil;
if (![self updateHighScoresWithError:&error]) {
  [tracker sendException:NO withNSError:error);
}

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

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

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
  [GAI sharedInstance].sendUncaughtExceptions = YES; // Enable 

  // ... the rest of your code, include other GAI properties you want to set.
}

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

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