Phần này mô tả cách xử lý lỗi.
Xử lý lỗi update_mask
Khi GMTDDeliveryVehicleReporter
gửi thông tin cập nhật về xe, update_mask
lỗi có thể xảy ra khi tham số truy vấn updateMask
trống. Để ngăn chặn
lỗi này, hãy luôn cung cấp ít nhất một tên trường. Tình trạng này thường xảy ra khi
bản cập nhật đầu tiên sau khi khởi động. Để biết thêm thông tin về cách cập nhật các trường xe
trong Fleet Engine, hãy xem nội dung Cập nhật các trường về xe.
Ví dụ sau đây trình bày cách xử lý lỗi này:
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