تحديد الأخطاء وتصحيحها

يوضّح هذا القسم كيفية التعامل مع الأخطاء.

التعامل مع أخطاء update_mask

عندما يرسل GMTDDeliveryVehicleReporter تعديلاً على مركبة، يمكن أن يحدث خطأ update_mask عندما تكون مَعلمة طلب البحث updateMask فارغة. لمنع حدوث هذا الخطأ، يجب دائمًا تقديم اسم حقل واحد على الأقل. يحدث هذا الخطأ عادةً في التعديل الأول بعد بدء التشغيل. لمزيد من المعلومات حول تعديل حقول المركبة في 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
  }
}

Objective-C

#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