Pakiet SDK klienta wysyła do aplikacji konsumenta błędy aktualizacji podróży za pomocą mechanizmu wywołania zwrotnego. Parametr wywołania zwrotnego to zwracany typ zwracany na daną platformę (TripUpdateError
w Androidzie i NSError
w iOS).
Wyodrębnianie kodów stanu
Błędy przekazywane do wywołania zwrotnego są zwykle błędami gRPC. Możesz też wyodrębnić z nich dodatkowe informacje w postaci kodu stanu. Pełną listę kodów stanu znajdziesz w artykule Kody stanu i ich użycie w gRPC.
Java
Możesz wyodrębnić kod stanu gRPC, który zawiera szczegóły błędu z TripUpdateError
zwróconego przez onTripUpdateError()
.
// Called when there is a trip update error.
@Override
public void onTripUpdateError(TripInfo tripInfo, TripUpdateError error) {
Status.Code code = error.getStatusCode();
}
Kotlin
Możesz wyodrębnić kod stanu gRPC, który zawiera szczegóły błędu z TripUpdateError
zwróconego przez onTripUpdateError()
.
// Called when there is a trip update error.
override fun onTripUpdateError(tripInfo: TripInfo, error: TripUpdateError) {
val code = error.getStatusCode()
}
Swift
Urządzenie NSError
jest wywoływane ponownie za 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
Urządzenie NSError
jest wywoływane ponownie za 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;
...
}
}
Interpretowanie kodów stanu
Kody stanu obejmują 2 rodzaje błędów: błędy serwera i sieci oraz błędy po stronie klienta.
Błędy serwera i sieci
Podane niżej kody stanu wskazują błędy sieci lub serwera i nie musisz nic robić, aby je naprawić. Pakiet SDK Consumer SDK automatycznie odzyskuje dane z tych danych.
Kod stanu | Opis |
---|---|
PRZERWONE | Serwer przestał wysyłać odpowiedź. Zwykle wynika to z problemu z serwerem. |
ANULOWANY | Serwer zakończył wychodzącą odpowiedź. Zwykle dzieje się tak, gdy aplikacja jest wysyłana w tle lub gdy zmienia się stan w aplikacji dla klientów indywidualnych. |
PRZERWA | |
DEADLINE_EXCEEDED | Serwer potrzebował zbyt wiele czasu na odpowiedź. |
UNAVAILABLE | Serwer był niedostępny. Zwykle wynika to z problemu z siecią. |
Błędy klienta
Poniższe kody stanu wskazują błędy klienta i musisz podjąć działania, aby je naprawić. Pakiet SDK klienta będzie ponawiać próby odświeżania podróży, dopóki nie zakończysz udostępniania ścieżki, ale nie przywrócimy działania, dopóki nie wykonasz określonego działania.
Kod stanu | Opis |
---|---|
INVALID_ARGUMENT | Aplikacja konsumenta podała nieprawidłową nazwę podróży. Nazwa podróży musi mieć format providers/{provider_id}/trips/{trip_id} .
|
NOT_FOUND | Podróż nigdy nie została utworzona. |
PERMISSION_DENIED | Aplikacja Consumer nie ma wystarczających uprawnień. Ten błąd występuje, gdy:
|
RESOURCE_EXHAUSTED | Limit zasobów wynosi zero lub prędkość przepływu przekracza ograniczenie. |
NIEUWIERZYTELNIONE | Żądanie nie powiodło się z powodu nieprawidłowego tokena JWT. Ten błąd występuje, gdy token JWT zostanie podpisany bez identyfikatora podróży lub token JWT wygasł. |