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

يصف هذا القسم كيفية التعامل مع الأخطاء.

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

يمكن أن يحدث خطأ 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