Tüketici SDK'sı, bir geri çağırma mekanizması kullanarak tüketici uygulamasına gezi güncelleme hatalarını gönderir. Geri çağırma parametresi, platforma özel bir döndürme türüdür (Android'de TripUpdateError
ve iOS'te NSError
).
Durum kodlarını çıkarma
Geri çağırmaya iletilen hatalar genellikle gRPC hatalarıdır. Ayrıca, bunlardan ek bilgileri durum kodu biçiminde de çıkarabilirsiniz. Durum kodlarının tam listesi için Durum kodları ve bunların gRPC'de kullanımı konusuna bakın.
Java
onTripUpdateError()
üzerinden döndürülen TripUpdateError
öğesinden hatayla ilgili ayrıntıları sağlayan bir gRPC durum kodu 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()
üzerinden döndürülen TripUpdateError
öğesinden hatayla ilgili ayrıntıları sağlayan bir gRPC durum kodu 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:)
içinde 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:
içinde 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 taraflı hatalar.
Sunucu ve ağ hataları
Aşağıdaki durum kodları ağ veya sunucu hataları içindir ve bunları çö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 genellikle bir sunucu sorunundan kaynaklanır. |
İPTAL EDİLDİ | Sunucu, giden yanıtı sonlandırdı. Bu durum, uygulama arka plana gönderildiğinde veya Tüketici uygulamasında bir durum değişikliği olduğunda gerçekleşir. |
KESİNTİ | |
DEADLINE_EXCEEDED | Sunucunun yanıt vermesi çok uzun sürdü. |
UNAVAILABLE | Sunucu kullanılamıyor. Bu durum genellikle bir ağ sorunundan kaynaklanır. |
İstemci hataları
Aşağıdaki durum kodları istemci hataları içindir ve bunları düzeltmek için harekete geçmeniz gerekir. Tüketici SDK'sı, siz yolculuk paylaşımını sonlandırıncaya kadar seyahati yenilemeyi denemeye devam eder ancak siz işlem yapana kadar düzelmeyecektir.
Durum Kodu | Açıklama |
---|---|
INVALID_ARGUMENT | Tüketici uygulaması geçersiz bir gezi adı belirtti. Gezi adı, providers/{provider_id}/trips/{trip_id} biçimine uymalıdır.
|
NOT_FOUND | Gezi hiç oluşturulmadı. |
PERMISSION_DENIED | Tüketici uygulamasının izinleri yeterli değil. Bu hata şu durumlarda oluşur:
|
RESOURCE_EXHAUSTED | Kaynak kotası sıfır veya trafik akış hızı hız sınırını aşıyor. |
KİMLİK DOĞRULANMADI | Geçersiz bir JWT jetonu nedeniyle isteğin kimlik doğrulaması başarısız oldu. Bu hata, JWT jetonu trip kimliği olmadan imzalandığında veya JWT jetonunun süresi dolduğunda ortaya çıkar. |