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 tiêu dùng bằng lệnh gọi lại cơ chế. Tham số gọi lại là kiểu dữ liệu trả về dành riêng cho từng nền tảng ( TripUpdateError trên Android và NSError trên iOS).

Trích xuất mã trạng thái

Lỗi được 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 URL đó dưới dạng mã trạng thái. Đối với danh sách đầy đủ các mã trạng thái, xem Mã trạng thái và cách sử dụng chúng 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 hai loại lỗi: lỗi liên quan đến máy chủ và lỗi 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à 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 chúng. SDK người tiêu dùng tự động phục hồi từ họ.

Mã trạng tháiMô tả
ĐÃ THANH TOÁN Máy chủ đã ngừng gửi phản hồi. Điều này thường là do lỗi sự cố máy chủ.
ĐÃ HỦY Máy chủ đã chấm dứt phản hồi gửi đi. Thông thường xảy ra khi
ứng dụng được chuyển sang chạy ở chế độ nền hoặc khi có sự thay đổi về trạng thái trong
Ứng dụng dành cho người tiêu 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 mạng vấn đề.

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 hành động để hãy giải quyết chúng. SDK người tiêu dùng sẽ tiếp tục thử lại để làm mới chuyến đi cho đến khi bạn kết thúc chia sẻ hành trình, nhưng tiện ích này sẽ không khôi phục cho đến khi bạn hành động.

Mã trạng tháiMô 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 sẽ tuân 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:
  • Ứng dụng Người tiêu dùng không có quyền
  • Bạn chưa bật SDK người tiêu dùng cho dự án trong Google Cloud Bảng điều khiển.
  • Mã thông báo JWT bị thiếu hoặc không hợp lệ.
  • Mã thông báo JWT được ký bằng mã chuyến đi không khớp với chuyến đi đã yêu cầu.
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ệ. Chiến dịch này lỗi 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.