خطاهای SDK مصرف کننده را مدیریت کنید
Consumer SDK خطاهای بهروزرسانی سفر را با استفاده از مکانیزم بازگشت به تماس به برنامه مصرفکننده ارسال میکند. پارامتر برگشت به تماس یک نوع بازگشتی خاص پلتفرم است ( TripUpdateError
در Android و NSError
در iOS).
استخراج کدهای وضعیت
خطاهای ارسال شده به callback معمولاً خطاهای gRPC هستند و همچنین می توانید اطلاعات اضافی را در قالب یک کد وضعیت از آنها استخراج کنید. برای فهرست کامل کدهای وضعیت، کدهای وضعیت و استفاده از آنها در gRPC را ببینید.
جاوا
شما می توانید یک کد وضعیت gRPC را استخراج کنید که جزئیات مربوط به خطا را از TripUpdateError
برگردانده شده از onTripUpdateError()
ارائه می دهد.
// Called when there is a trip update error.
@Override
public void onTripUpdateError(TripInfo tripInfo, TripUpdateError error) {
Status.Code code = error.getStatusCode();
}
کاتلین
شما می توانید یک کد وضعیت gRPC را استخراج کنید که جزئیات مربوط به خطا را از TripUpdateError
برگردانده شده از onTripUpdateError()
ارائه می دهد.
// Called when there is a trip update error.
override fun onTripUpdateError(tripInfo: TripInfo, error: TripUpdateError) {
val code = error.getStatusCode()
}
سریع
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
...
}
}
هدف-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;
...
}
}
کدهای وضعیت را تفسیر کنید
کدهای وضعیت دو نوع خطا را پوشش می دهند: خطاهای مربوط به سرور و شبکه و خطاهای سمت سرویس گیرنده.
خطاهای سرور و شبکه
کدهای وضعیت زیر مربوط به خطاهای شبکه یا سرور هستند و برای رفع آنها نیازی به اقدامی ندارید. Consumer SDK به طور خودکار از آنها بازیابی می شود.
کد وضعیت | شرح |
---|---|
سقط شد | سرور ارسال پاسخ را متوقف کرد. این معمولاً به دلیل مشکل سرور ایجاد می شود. |
لغو شد | سرور پاسخ خروجی را خاتمه داد. این معمولا زمانی اتفاق می افتد که برنامه به پسزمینه ارسال میشود، یا زمانی که تغییر حالتی در آن وجود دارد اپلیکیشن مصرف کننده |
منقطع | |
DEADLINE_EXCEEDED | پاسخ سرور خیلی طول کشید. |
غیر قابل دسترسی | سرور در دسترس نبود این معمولاً به دلیل یک مشکل شبکه ایجاد می شود. |
خطاهای مشتری
کدهای وضعیت زیر مربوط به خطاهای کلاینت هستند و شما باید برای رفع آنها اقدام کنید. Consumer SDK به تلاش مجدد برای بازخوانی سفر تا پایان اشتراکگذاری سفر ادامه میدهد، اما تا زمانی که اقدامی انجام ندهید، بازیابی نمیشود.
کد وضعیت | شرح |
---|---|
INVALID_ARGUMENT | برنامه مصرف کننده یک نام سفر نامعتبر را مشخص کرده است. نام سفر باید از فرمت providers/{provider_id}/trips/{trip_id} پیروی کند. |
پیدا نشد | سفر هرگز ایجاد نشد. |
PERMISSION_DENIED | برنامه مصرف کننده مجوزهای کافی ندارد. این خطا زمانی رخ می دهد که:
|
RESOURCE_EXHAUSTED | سهمیه منابع صفر است، یا سرعت جریان ترافیک از حد مجاز بیشتر است. |
بدون احراز هویت | این درخواست به دلیل یک توکن JWT نامعتبر احراز هویت نشد. این خطا یا زمانی رخ می دهد که توکن JWT بدون شناسه سفر امضا شده باشد یا زمانی که توکن JWT منقضی شده باشد. |