แก้ไขข้อผิดพลาด

หัวข้อนี้จะอธิบายวิธีจัดการกับข้อผิดพลาด

จัดการข้อผิดพลาดupdate_mask

เมื่อ GMTDDeliveryVehicleReporter ส่งการอัปเดตยานพาหนะ update_mask ข้อผิดพลาดนี้อาจเกิดขึ้นเมื่อพารามิเตอร์การค้นหา updateMask ว่างเปล่า วิธีป้องกัน ข้อผิดพลาดนี้ โปรดระบุชื่อช่องอย่างน้อย 1 ชื่อเสมอ ซึ่งมักจะเกิดขึ้นในกรณี อัปเดตครั้งแรกหลังจากเริ่มต้น ดูข้อมูลเพิ่มเติมเกี่ยวกับการอัปเดตช่องยานพาหนะ ใน 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