عیب‌یابی خطاها

این بخش نحوه رسیدگی به خطاها را شرح می‌دهد.

خطاهای update_mask را مدیریت کنید

وقتی GMTDDeliveryVehicleReporter به‌روزرسانی خودرو ارسال می‌کند، اگر پارامتر پُرسمان updateMask خالی باشد، ممکن است خطای update_mask رخ دهد. برای جلوگیری از این خطا، همیشه حداقل یک نام فیلد ارائه دهید. این مشکل معمولاً برای اولین به‌روزرسانی پس‌از راه‌اندازی رخ می‌دهد. برای کسب اطلاعات بیشتر درباره به‌روزرسانی فیلدهای خودرو در Fleet Engine، به به‌روزرسانی فیلدهای خودرو مراجعه کنید.

مثال زیر نحوه رسیدگی به این خطا را نشان می‌دهد:

Swift

import GoogleRidesharingDriver

class VehicleReporterListener: NSObject, GMTDVehicleReporterListener {
  func vehicleReporter(
    _ vehicleReporter: GMTDVehicleReporter,
    didFail vehicleUpdate: GMTDVehicleUpdate,
    withError error: Error
  ) {
    let fullError = error as NSError
    if let innerError = fullError.userInfo[NSUnderlyingErrorKey] as? NSError {
      let innerFullError = innerError as NSError
      if innerFullError.localizedDescription.contains("update_mask cannot be empty") {
        emptyMaskUpdates += 1
        return
      }
    }
    failedUpdates += 1
  }

  override init() {
    emptyMaskUpdates = 0
    failedUpdates = 0
  }
}

آبجکتیو-سی

#import "VehicleReporterListener.h"
#import <GoogleRidesharingDriver/GoogleRidesharingDriver.h>

@implementation VehicleReporterListener {
  NSInteger emptyMaskUpdates = 0;
  NSInteger failedUpdates = 0;
}

- (void)vehicleReporter:(GMTDVehicleReporter *)vehicleReporter
  didFailVehicleUpdate:(GMTDVehicleUpdate *)vehicleUpdate
             withError:(NSError *)error {
  for (NSError *underlyingError in error.underlyingErrors) {
    if ([underlyingError.localizedDescription containsString:@"update_mask cannot be empty"]) {
      emptyMaskUpdates += 1;
      return;
    }
  }
  failedUpdates += 1
}

@end