Sự cố và ngoại lệ - SDK iOS

Tài liệu này cung cấp thông tin tổng quan cấp cao về hoạt động đo lường sự cố và ngoại lệ bằng cách sử dụng SDK Google Analytics cho iOS phiên bản 2.

Tổng quan

Tính năng đo lường sự cố và ngoại lệ cho phép bạn đo lường số lượng và loại sự cố cũng như ngoại lệ xảy ra trong ứng dụng của mình. Một trường hợp ngoại lệ trong Google Analytics bao gồm:

  • NSString (Không bắt buộc) Nội dung mô tả – nội dung mô tả về trường hợp ngoại lệ (tối đa 100 ký tự). Chấp nhận nil.
  • boolean isFatal – cho biết liệu ngoại lệ có nghiêm trọng hay không. YES cho biết lỗi nghiêm trọng.

Dữ liệu về sự cố và ngoại lệ chủ yếu có trong báo cáo Sự cố và ngoại lệ.

Ngoại lệ đã phát hiện

Ngoại lệ bị phát hiện là các lỗi trong ứng dụng mà bạn đã xác định mã xử lý ngoại lệ. Đây thường là những lỗi mà bạn có thể sẽ xảy ra trong quá trình sử dụng ứng dụng bình thường và khi đó bạn muốn ứng dụng của mình có thể khôi phục, chẳng hạn như thời gian chờ thỉnh thoảng của kết nối mạng trong khi yêu cầu dữ liệu.

Bạn có thể đo lường các trường hợp ngoại lệ đã phát hiện bằng cách thêm sendException: vào khối catch của mã xử lý ngoại lệ.

Trong ví dụ sau, một ứng dụng cố gắng tải danh sách điểm cao từ đám mây. Nếu yêu cầu hết thời gian chờ, có thể do kết nối mạng chậm, chúng tôi sẽ gửi ngoại lệ cho Google Analytics trước khi xử lý yêu cầu đó cho người dùng:

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

Bạn có thể tự động điền tên và lý do vào trường mô tả của một trường hợp ngoại lệ bằng cách sử dụng sendException:withDescription:withNSException:, như trong ví dụ sau:

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

Để tự động điền lỗi vào miền lỗi, mã và nội dung mô tả, hãy sử dụng sendException:withDescription:withNSError: như minh hoạ dưới đây:

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

Đo lường ngoại lệ chưa nắm bắt

Các ngoại lệ chưa phát hiện được biểu thị các trường hợp mà ứng dụng của bạn gặp phải những điều kiện không mong muốn trong thời gian chạy và thường nghiêm trọng, khiến ứng dụng gặp sự cố. Hệ thống có thể tự động gửi các trường hợp ngoại lệ chưa phát hiện được đến Google Analytics bằng cách đặt thuộc tính sendUncaughtExceptions thành YES. Bạn có thể thực hiện việc này một cách thuận tiện từ phương thức application:didFinishLaunchingWithOptions của người được uỷ quyền ứng dụng:

- (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.
}

Khi sử dụng tính năng tự động đo lường ngoại lệ, hãy lưu ý những điều sau:

  • Tất cả các trường hợp ngoại lệ được gửi bằng tính năng tự động đo lường ngoại lệ đều được báo cáo là nghiêm trọng trong Google Analytics.
  • Trường nội dung mô tả được điền tự động bằng cách sử dụng dấu vết ngăn xếp.