क्रैश और अपवाद - iOS SDK टूल

यह दस्तावेज़ iOS v2 के लिए Google Analytics SDK का इस्तेमाल करके क्रैश और अपवाद मेज़रमेंट की खास जानकारी देता है.

खास जानकारी

क्रैश और अपवाद मेज़रमेंट की मदद से, अपने ऐप्लिकेशन में होने वाले क्रैश और अपवादों की संख्या और टाइप मेज़र किए जा सकते हैं. Google Analytics के अपवाद में ये शामिल हैं:

  • NSString (ज़रूरी नहीं) ब्यौरा – अपवाद का ब्यौरा (ज़्यादा से ज़्यादा 100 वर्ण). nil को स्वीकार किया जाता है.
  • boolean isFatal – यह बताता है कि अपवाद गंभीर था या नहीं. YES जानलेवा होता है.

क्रैश और अपवाद से जुड़ा डेटा मुख्य रूप से, क्रैश और अपवाद से जुड़ी रिपोर्ट में उपलब्ध होता है.

अपवाद

अपवाद के तौर पर लागू होने वाले अपवाद, आपके ऐप्लिकेशन में मौजूद वे गड़बड़ियां होती हैं जिनके लिए आपने अपवाद हैंडलिंग कोड तय किया है. आम तौर पर, ये गड़बड़ियां होती हैं. इनका इस्तेमाल ऐप्लिकेशन के सामान्य इस्तेमाल के दौरान होना चाहिए. साथ ही, आपको ऐप्लिकेशन को वापस पाना है, जैसे कि डेटा पाने का अनुरोध करने के दौरान, कभी-कभी नेटवर्क कनेक्शन का बंद हो जाना.

अपवाद के तौर पर लागू होने वाले अपने कोड के catch ब्लॉक में sendException: जोड़कर, पकड़े गए अपवादों को मेज़र किया जा सकता है.

यहां दिए गए उदाहरण में, एक ऐप्लिकेशन क्लाउड से सबसे ज़्यादा स्कोर की सूची लोड करने की कोशिश करता है. अगर नेटवर्क कनेक्शन धीमा होने की वजह से, अनुरोध का समय खत्म हो जाता है, तो उपयोगकर्ता को हैंडल करने से पहले हम Google Analytics को यह अपवाद भेज देंगे:

@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);
}

अपवाद के बारे में पता नहीं चलने वाला मेज़रमेंट

अपवाद के तौर पर, आपके ऐप्लिकेशन में ऐसी स्थितियां दिखती हैं जब रनटाइम के दौरान ऐप्लिकेशन में कोई गड़बड़ी हुई हो. यह अक्सर जानलेवा होता है, जिसकी वजह से ऐप्लिकेशन क्रैश हो जाता है. sendUncaughtExceptions प्रॉपर्टी को YES पर सेट करके, Google Analytics को ऐसे अपवाद अपने-आप भेजे जा सकते हैं जिनके बारे में पता नहीं चला है. यह काम आपके ऐप्लिकेशन के प्रतिनिधि के 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 Analytics में 'घातक' के तौर पर रिपोर्ट किया जाता है.
  • ब्यौरे वाले फ़ील्ड में स्टैक ट्रेस का इस्तेमाल करके अपने-आप जानकारी भर जाती है.