Xử lý lỗi SDK của người tiêu dùng
SDK người tiêu dùng gửi lỗi cập nhật chuyến đi cho ứng dụng dành cho người dùng thông qua cơ chế gọi lại. Tham số gọi lại là một kiểu dữ liệu trả về tuỳ theo nền tảng (TripUpdateError
trên Android và NSError
trên iOS).
Trích xuất mã trạng thái
Lỗi chuyển đến lệnh gọi lại thường là lỗi gRPC và bạn cũng có thể trích xuất thông tin bổ sung từ các lỗi đó dưới dạng mã trạng thái. Để xem danh sách đầy đủ các mã trạng thái, hãy xem phần Mã trạng thái và cách sử dụng các mã trạng thái đó trong gRPC.
Java
Bạn có thể trích xuất mã trạng thái gRPC cung cấp thông tin chi tiết về lỗi từ TripUpdateError
được trả về từ onTripUpdateError()
.
// Called when there is a trip update error.
@Override
public void onTripUpdateError(TripInfo tripInfo, TripUpdateError error) {
Status.Code code = error.getStatusCode();
}
Kotlin
Bạn có thể trích xuất mã trạng thái gRPC cung cấp thông tin chi tiết về lỗi từ TripUpdateError
được trả về từ onTripUpdateError()
.
// Called when there is a trip update error.
override fun onTripUpdateError(tripInfo: TripInfo, error: TripUpdateError) {
val code = error.getStatusCode()
}
Swift
NSError
được gọi lại trong tripModel(_:didFailUpdateTripWithError:)
.
// Called when there is a trip update error.
func tripModel(_ tripModel: GMTCTripModel, didFailUpdateTripWithError error: Error?) {
// Check to see if the error comes from gRPC.
if let error = error as NSError?, error.domain == "io.grpc" {
let gRPCErrorCode = error.code
...
}
}
Objective-C
NSError
được gọi lại trong tripModel:didFailUpdateTripWithError:
.
// Called when there is a trip update error.
- (void)tripModel:(GMTCTripModel *)tripModel didFailUpdateTripWithError:(NSError *)error {
// Check to see if the error comes from gRPC.
if ([error.domain isEqualToString:@"io.grpc"]) {
NSInteger gRPCErrorCode = error.code;
...
}
}
Diễn giải mã trạng thái
Mã trạng thái bao gồm 2 loại lỗi: lỗi liên quan đến máy chủ và mạng và lỗi phía máy khách.
Lỗi máy chủ và mạng
Các mã trạng thái sau đây là dành cho lỗi mạng hoặc lỗi máy chủ và bạn không cần làm gì để giải quyết các lỗi này. SDK tiêu dùng sẽ tự động khôi phục từ các SDK đó.
Mã trạng thái | Nội dung mô tả |
---|---|
ĐÃ THANH TOÁN | Máy chủ đã ngừng gửi phản hồi. Điều này thường là do một sự cố máy chủ gây ra. |
CANCELLED (ĐÃ HUỶ) | Máy chủ đã chấm dứt phản hồi gửi đi. Điều này thường xảy ra khi ứng dụng được chuyển ở chế độ nền hoặc khi có sự thay đổi trạng thái trong ứng dụng dành cho người dùng . |
BỊ GIÁN ĐOẠN | |
DEADLINE_EXCEEDED | Máy chủ mất quá nhiều thời gian để phản hồi. |
KHÔNG CÓ | Máy chủ không khả dụng. Điều này thường là do sự cố mạng gây ra. |
Lỗi ứng dụng
Các mã trạng thái sau đây là dành cho các lỗi ứng dụng và bạn phải tiến hành khắc phục. SDK người tiêu dùng tiếp tục thử làm mới chuyến đi cho đến khi bạn kết thúc tính năng chia sẻ hành trình, nhưng sẽ không khôi phục cho đến khi bạn thực hiện hành động.
Mã trạng thái | Nội dung mô tả |
---|---|
INVALID_ARGUMENT | Ứng dụng Người tiêu dùng đã chỉ định tên chuyến đi không hợp lệ. Tên chuyến đi phải theo định dạng providers/{provider_id}/trips/{trip_id} .
|
NOT_FOUND | Chuyến đi chưa được tạo. |
PERMISSION_DENIED | Ứng dụng Người tiêu dùng không có đủ quyền. Lỗi này xảy ra khi:
|
RESOURCE_EXHAUSTED | Hạn mức tài nguyên bằng 0 hoặc tốc độ lưu lượng truy cập vượt quá giới hạn tốc độ. |
KHÔNG XÁC THỰC | Không xác thực được yêu cầu do mã thông báo JWT không hợp lệ. Lỗi này xảy ra khi mã thông báo JWT được ký mà không có mã chuyến đi hoặc khi mã thông báo JWT đã hết hạn. |