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

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

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

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

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

سویفت

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