טיפול בשגיאות SDK של צרכנים
ה-SDK לצרכנים שולח שגיאות בעדכון הנסיעה לאפליקציה לצרכנים באמצעות מנגנון של קריאה חוזרת. פרמטר הקריאה החוזרת הוא סוג החזרה ספציפי לפלטפורמה (TripUpdateError
ב-Android ו-NSError
ב-iOS).
חילוץ קודי סטטוס
השגיאות שמועברות לקריאה החוזרת הן בדרך כלל שגיאות 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;
...
}
}
פירוש של קודי סטטוס
קודי הסטטוס כוללים שני סוגים של שגיאות: שגיאות שקשורות לשרת ולרשת, ושגיאות בצד הלקוח.
שגיאות בחיבור לשרת ולרשת
קודי הסטטוס הבאים מיועדים לשגיאות רשת או לשגיאות שרת, ואין צורך לבצע פעולה כלשהי כדי לפתור אותם. ה-SDK של הצרכן משחזר ממנו באופן אוטומטי.
קוד סטטוס | תיאור |
---|---|
בוצעה הפרה | השרת הפסיק לשלוח את התגובה. בדרך כלל הסיבה לכך היא בעיה בשרת. |
בוטלה | השרת סיים את התגובה היוצאת. המצב הזה
מתרחש בדרך כלל כשהאפליקציה
נשלחת לרקע, או כשיש שינוי במצב באפליקציה לצרכנים, . |
הפרעה | |
DEADLINE_EXCEEDED | לשרת נדרש זמן רב מדי להגיב. |
UNAVAILABLE | השרת לא היה זמין. בדרך כלל הסיבה לכך היא בעיה ברשת. |
שגיאות לקוח
קודי הסטטוס הבאים מיועדים לשגיאות של לקוחות, וצריך לנקוט פעולה כדי לפתור אותם. ה-SDK של הצרכן ממשיך לנסות לרענן את הנסיעה עד ששיתוף התהליך יסתיים, אבל הוא לא ישוחזר עד שתבצע את מה שנדרש.
קוד סטטוס | תיאור |
---|---|
INVALID_ARGUMENT | אפליקציית הצרכן ציין שם נסיעה לא חוקי. שם הנסיעה חייב
להופיע בפורמט providers/{provider_id}/trips/{trip_id} .
|
NOT_FOUND | הנסיעה מעולם לא נוצרה. |
PERMISSION_DENIED | לאפליקציה לצרכנים אין הרשאות מספיקות. השגיאה הזו מתקבלת כאשר:
|
RESOURCE_EXHAUSTED | מכסת המשאבים היא אפס, או שקצב זרימת התנועה חורג מהמהירות המותרת. |
לא מאומת | האימות של הבקשה נכשל כי אסימון JWT לא תקין. השגיאה הזו מתקבלת כשאסימון ה-JWT חתום ללא מזהה נסיעה, או כשפג התוקף של אסימון ה-JWT. |