จัดการข้อผิดพลาด SDK ของผู้บริโภค
Consumer SDK จะส่งข้อผิดพลาดในการอัปเดตการเดินทางไปยังแอปของผู้บริโภคโดยใช้กลไก Callback พารามิเตอร์ Callback เป็นประเภทการแสดงผลเฉพาะแพลตฟอร์ม (TripUpdateError
ใน Android และ NSError
ใน iOS)
ดึงรหัสสถานะ
ข้อผิดพลาดที่ส่งไปยัง Callback มักเป็นข้อผิดพลาด gRPC และคุณยังดึงข้อมูลเพิ่มเติมจากข้อผิดพลาดนี้ในรูปแบบรหัสสถานะได้ด้วย ดูรายการรหัสสถานะทั้งหมดได้ที่รหัสสถานะและการใช้ใน gRPC
Java
คุณดึงรหัสสถานะ gRPC ที่มีรายละเอียดเกี่ยวกับข้อผิดพลาดจาก TripUpdateError
ที่แสดงผลจาก onTripUpdateError()
ได้
// Called when there is a trip update error.
@Override
public void onTripUpdateError(TripInfo tripInfo, TripUpdateError error) {
Status.Code code = error.getStatusCode();
}
Kotlin
คุณดึงรหัสสถานะ gRPC ที่มีรายละเอียดเกี่ยวกับข้อผิดพลาดจาก TripUpdateError
ที่แสดงผลจาก onTripUpdateError()
ได้
// Called when there is a trip update error.
override fun onTripUpdateError(tripInfo: TripInfo, error: TripUpdateError) {
val code = error.getStatusCode()
}
Swift
ระบบจะเรียก NSError
กลับมาใน 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
กลับมาใน 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;
...
}
}
ตีความรหัสสถานะ
รหัสสถานะครอบคลุมข้อผิดพลาด 2 ประเภท ได้แก่ ข้อผิดพลาดเกี่ยวกับเซิร์ฟเวอร์และเครือข่าย และข้อผิดพลาดฝั่งไคลเอ็นต์
ข้อผิดพลาดเกี่ยวกับเซิร์ฟเวอร์และเครือข่าย
รหัสสถานะต่อไปนี้มีไว้สำหรับข้อผิดพลาดเกี่ยวกับเครือข่ายหรือเซิร์ฟเวอร์ และคุณไม่จำเป็นต้องดำเนินการใดๆ เพื่อแก้ไข SDK ของผู้บริโภคจะกู้คืน จากไลบรารีดังกล่าวโดยอัตโนมัติ
รหัสสถานะ | คำอธิบาย |
---|---|
ล้มเลิกแล้ว | เซิร์ฟเวอร์หยุดส่งการตอบกลับ ซึ่งโดยปกติจะเกิดจากปัญหาของเซิร์ฟเวอร์ |
ยกเลิกแล้ว | เซิร์ฟเวอร์สิ้นสุดการตอบกลับขาออก โดยปกติ
กรณีนี้จะเกิดขึ้นเมื่อ
มีการส่งแอปไปยังเบื้องหลัง หรือเมื่อมีการเปลี่ยนสถานะในแอป Consumer |
ขัดข้อง | |
DEADLINE_EXCEEDED | เซิร์ฟเวอร์ใช้เวลาตอบสนองนานเกินไป |
UNAVAILABLE | เซิร์ฟเวอร์ไม่พร้อมใช้งาน ซึ่งโดยปกติจะเกิดจากปัญหาของเครือข่าย |
ข้อผิดพลาดของไคลเอ็นต์
รหัสสถานะต่อไปนี้มีไว้สำหรับข้อผิดพลาดของไคลเอ็นต์และคุณต้องดำเนินการเพื่อแก้ไข Consumer SDK จะยังคงพยายามรีเฟรชการเดินทางต่อไปจนกว่าคุณจะสิ้นสุดการแชร์เส้นทาง แต่จะไม่กู้คืนจนกว่าคุณจะดำเนินการ
รหัสสถานะ | คำอธิบาย |
---|---|
INVALID_ARGUMENT | แอป Consumer ระบุชื่อการเดินทางไม่ถูกต้อง ชื่อการเดินทางต้องเป็นไปตามรูปแบบ providers/{provider_id}/trips/{trip_id}
|
NOT_FOUND | ไม่เคยสร้างการเดินทางนี้ |
PERMISSION_DENIED | แอป Consumer มีสิทธิ์ไม่เพียงพอ ข้อผิดพลาดนี้เกิดขึ้นเมื่อ
|
RESOURCE_EXHAUSTED | โควต้าทรัพยากรอยู่ที่ 0 หรืออัตราการรับส่งของการรับส่งข้อมูลเกินขีดจำกัดความเร็ว |
ไม่มีการตรวจสอบสิทธิ์ | คำขอตรวจสอบสิทธิ์ไม่สำเร็จเนื่องจากโทเค็น JWT ไม่ถูกต้อง ข้อผิดพลาดนี้เกิดขึ้นเมื่อมีการลงนามโทเค็น JWT โดยไม่มีรหัสการเดินทาง หรือเมื่อโทเค็น JWT หมดอายุ |