בקטע הזה נסביר איך לטפל בשגיאות.
טיפול בשגיאות של 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