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ą mechanizmu wywołania zwrotnego. Parametr wywołania zwrotnego jest typem zwrotu specyficznym dla platformy (TripUpdateError
w Androidzie i NSError
na iOS).
Wyodrębnianie kodów stanu
Błędy przekazywane do wywołania zwrotnego są zwykle błędami gRPC, ale możesz również wyodrębnić z nich dodatkowe informacje w postaci kodu stanu. Pełną listę kodów stanu znajdziesz w artykule Kody stanu i ich zastosowania w gRPC.
Java
Możesz wyodrębnić kod stanu gRPC zawierający szczegółowe informacje o błędzie z wywołania TripUpdateError
zwróconego z 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 z wywołania TripUpdateError
zwróconego z 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ą 2 rodzaje błędów: błędy związane z serwerem i siecią oraz błędy po stronie klienta.
Błędy serwera i sieci
Poniższe kody stanu dotyczą błędów sieci lub serwera i nie musisz nic robić, aby je rozwiązać. a potem automatycznie je odzyskuje.
Kod stanu | Opis |
---|---|
ANULOWANO | Serwer przestał wysyłać odpowiedź. Zazwyczaj jest to spowodowane problemem z serwerem. |
ANULOWANY | Serwer zakończył odpowiedź wychodzącą. Zwykle dzieje się tak, gdy aplikacja jest wysyłana w tle lub gdy następuje zmiana stanu w aplikacji konsumenckiej . |
PRZERWA | |
DEADLINE_EXCEEDED | Oczekiwanie na odpowiedź serwera trwało zbyt długo. |
PRODUKT NIEDOSTĘPNY | Serwer był niedostępny. Zazwyczaj jest to spowodowane problemem z siecią. |
Błędy klienta
Poniższe kody stanu dotyczą błędów klienta i musisz podjąć działania, aby je usunąć. Pakiet Consumer SDK będzie ponawiać próby odświeżenia podróży, dopóki nie zakończysz udostępniania przejazdu, ale nie przywróci on ustawień, dopóki nie podejmiesz odpowiednich działań.
Kod stanu | Opis |
---|---|
INVALID_ARGUMENT | Aplikacja konsumenta określiła nieprawidłową nazwę podróży. Nazwa podróży 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 limit prędkości. |
BEZ UWIERZYTELNIANIA | Uwierzytelnianie nie powiodło się z powodu nieprawidłowego tokena JWT. Ten błąd występuje, gdy token JWT jest podpisany bez identyfikatora podróży lub gdy token JWT wygasł. |