يوضّح هذا القسم كيفية التعامل مع الأخطاء.
التعامل مع أخطاء 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