Tüketici SDK'sı Hatalarını Ele Alma
Tüketici SDK'sı, bir geri çağırma mekanizması kullanarak gezi güncelleme hatalarını tüketici uygulamasına gönderir. Geri çağırma parametresi, platforma özel bir dönüş türüdür (Android'de TripUpdateError
ve iOS'te NSError
).
Durum kodlarını çıkart
Geri çağırmaya iletilen hatalar genellikle gRPC hatalarıdır. Dilerseniz bu hatalardan ek bilgileri durum kodu biçiminde de çıkarabilirsiniz. Durum kodlarının tam listesi için Durum kodları ve gRPC'de kullanılmaları bölümüne bakın.
Java
onTripUpdateError()
öğesinden döndürülen TripUpdateError
öğesinden, hatayla ilgili ayrıntılar sağlayan bir gRPC durum kodunu ayıklayabilirsiniz.
// Called when there is a trip update error.
@Override
public void onTripUpdateError(TripInfo tripInfo, TripUpdateError error) {
Status.Code code = error.getStatusCode();
}
Kotlin
onTripUpdateError()
öğesinden döndürülen TripUpdateError
öğesinden, hatayla ilgili ayrıntılar sağlayan bir gRPC durum kodunu ayıklayabilirsiniz.
// Called when there is a trip update error.
override fun onTripUpdateError(tripInfo: TripInfo, error: TripUpdateError) {
val code = error.getStatusCode()
}
Swift
NSError
, tripModel(_:didFailUpdateTripWithError:)
sonra geri aranır.
// 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:
sonra geri aranır.
// 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;
...
}
}
Durum kodlarını yorumlama
Durum kodları iki tür hatayı kapsar: sunucu ve ağla ilgili hatalar ve istemci tarafı hataları.
Sunucu ve ağ hataları
Aşağıdaki durum kodları ağ veya sunucu hataları içindir ve bu hataları çözmek için herhangi bir işlem yapmanız gerekmez. Tüketici SDK'sı bunları otomatik olarak kurtarır.
Durum Kodu | Açıklama |
---|---|
İPTAL EDİLDİ | Sunucu, yanıt göndermeyi durdurdu. Bu durum, genellikle sunucudaki bir sorundan kaynaklanır. |
İPTAL EDİLDİ | Sunucu giden yanıtı sonlandırdı. Bu durum normalde
uygulama arka plana gönderildiğinde veya tüketici uygulamasında bir durum değişikliği olduğunda ortaya çıkar. |
KESİLDİ | |
DEADLINE_EXCEEDED | Sunucunun yanıt vermesi çok uzun sürdü. |
UNAVAILABLE | Sunucu kullanılamıyor. Bu durum genellikle ağ ile ilgili bir sorundan kaynaklanır. |
İstemci hataları
Aşağıdaki durum kodları istemci hataları içindir. Bu hataları çözmek için işlem yapmanız gerekir. Tüketici SDK'sı, siz yolculuk paylaşımını sonlandırana kadar geziyi yenilemeyi denemeye devam eder ancak siz işlem yapana kadar düzelmez.
Durum Kodu | Açıklama |
---|---|
INVALID_ARGUMENT | Tüketici uygulaması geçersiz bir gezi adı belirtti. Gezi adı providers/{provider_id}/trips/{trip_id} biçiminde olmalıdır.
|
NOT_FOUND | Gezi hiç oluşturulmadı. |
PERMISSION_DENIED | Tüketici uygulamasının izinleri yeterli değil. Bu hata aşağıdaki durumlarda ortaya çıkar:
|
RESOURCE_EXHAUSTED | Kaynak kotası sıfırdır veya trafik akışı hızı hız sınırını aşıyor. |
KİMLİK DOĞRULAMADI | Geçersiz bir JWT jetonu nedeniyle isteğin kimlik doğrulaması başarısız oldu. Bu hata, JWT jetonu bir seyahat kimliği olmadan imzalandığında veya JWT jetonunun süresi dolduğunda ortaya çıkar. |