Obsługa błędów pakietów SDK dla konsumentów
Pakiet SDK Consumer SDK wysyła do aplikacji konsumenta błędy aktualizacji podróży za pomocą wywołania zwrotnego
. Parametr wywołania zwrotnego jest typem zwrotu specyficznym dla platformy (
TripUpdateError
na Androidzie oraz
NSError
w systemie iOS).
Wyodrębnianie kodów stanu
Błędy przekazywane do wywołania zwrotnego są zwykle błędami gRPC. Możesz również wyodrębnienia z nich dodatkowych informacji w postaci kodu stanu. W przypadku wartości pełna lista kodów stanu, patrz Kody stanu i ich zastosowania w gRPC.
Java
Możesz wyodrębnić kod stanu gRPC zawierający szczegółowe informacje o błędzie
od: TripUpdateError
zwróconych 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 zawierający szczegółowe informacje o błędzie
od: TripUpdateError
zwróconych przez: onTripUpdateError()
.
// Called when there is a trip update error.
override fun onTripUpdateError(tripInfo: TripInfo, error: TripUpdateError) {
val code = error.getStatusCode()
}
Swift
Element NSError
zostaje wywołany 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
Element NSError
zostaje wywołany 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;
...
}
}
Zinterpretuj kody stanu
Kody stanu obejmują dwa rodzaje błędów: błędy serwera i sieci oraz po stronie klienta.
Błędy serwera i sieci
Poniższe kody stanu dotyczą błędów sieci lub serwera i nie muszą nic robić. Pakiet SDK klienta automatycznie po takim okresie.
Kod stanu | Opis |
---|---|
ANULOWANO | Serwer przestał wysyłać odpowiedź. Przyczyną tej sytuacji jest zwykle problem z serwerem. |
ANULOWANO | Serwer zakończył odpowiedź wychodzącą. To normalne
ma miejsce, gdy
aplikacja jest wysyłana w tle lub po zmianie stanu Aplikacja dla klientów indywidualnych. |
PRZERWA | |
DEADLINE_EXCEEDED | Oczekiwanie na odpowiedź serwera trwało zbyt długo. |
PRODUKT NIEDOSTĘPNY | Serwer był niedostępny. Przyczyną problemu jest zwykle sieć . |
Błędy klienta
Poniższe kody stanu dotyczą błędów klienta i musisz podjąć działania, aby i ją rozwiązać. Pakiet SDK klienta będzie ponawiać próby odświeżenia podróży, dopóki nie aby zakończyć udostępnianie ścieżki, ale nie zostanie ono przywrócone, dopóki nie podejmiesz działań.
Kod stanu | Opis |
---|---|
INVALID_ARGUMENT | Aplikacja konsumenta podała nieprawidłową nazwę podróży. Nazwa podróży musi
musi mieć format providers/{provider_id}/trips/{trip_id} .
|
NOT_FOUND | Podróż nie została utworzona. |
PERMISSION_DENIED | Aplikacja konsumenta ma niewystarczające uprawnienia. Ten błąd występuje, gdy:
|
RESOURCE_EXHAUSTED | Limit zasobów wynosi zero lub tempo przepływu ruchu przekracza ograniczenia prędkości. |
BEZ UWIERZYTELNIANIA | Uwierzytelnianie nie powiodło się z powodu nieprawidłowego tokena JWT. Ten występuje, gdy token JWT jest podpisany bez identyfikatora podróży lub po wygaśnięciu tokena JWT. |