Menangani Error SDK Konsumen
Consumer SDK mengirim error update perjalanan ke aplikasi konsumen menggunakan mekanisme
callback. Parameter callback adalah jenis nilai yang ditampilkan khusus platform (TripUpdateError
di Android, dan NSError
di iOS).
Mengekstrak kode status
Error yang diteruskan ke callback biasanya merupakan error gRPC, dan Anda juga dapat mengekstrak informasi tambahan dari error tersebut dalam bentuk kode status. Untuk mengetahui daftar lengkap kode status, lihat Kode status dan penggunaannya di gRPC.
Java
Anda dapat mengekstrak kode status gRPC yang memberikan detail tentang error
dari TripUpdateError
yang ditampilkan dari onTripUpdateError()
.
// Called when there is a trip update error.
@Override
public void onTripUpdateError(TripInfo tripInfo, TripUpdateError error) {
Status.Code code = error.getStatusCode();
}
Kotlin
Anda dapat mengekstrak kode status gRPC yang memberikan detail tentang error
dari TripUpdateError
yang ditampilkan dari onTripUpdateError()
.
// Called when there is a trip update error.
override fun onTripUpdateError(tripInfo: TripInfo, error: TripUpdateError) {
val code = error.getStatusCode()
}
Swift
NSError
dipanggil kembali di 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
NSError
dipanggil kembali di 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;
...
}
}
Menafsirkan kode status
Kode status mencakup dua jenis error: error terkait server dan jaringan, serta error sisi klien.
Error server dan jaringan
Kode status berikut ditujukan untuk error jaringan atau server, dan Anda tidak perlu melakukan tindakan apa pun untuk menyelesaikannya. Consumer SDK akan otomatis dipulihkan dari sana.
Kode Status | Deskripsi |
---|---|
ABORTED | Server berhenti mengirim respons. Hal ini biasanya disebabkan oleh masalah server. |
CANCELLED (DIBATALKAN) | Server menghentikan respons keluar. Hal ini biasanya
terjadi saat
aplikasi dikirim ke latar belakang, atau saat ada perubahan status di aplikasi Consumer. |
INTERRUPTED | |
DEADLINE_EXCEEDED | Server membutuhkan waktu terlalu lama untuk merespons. |
UNAVAILABLE | Server tidak tersedia. Hal ini biasanya disebabkan oleh masalah jaringan. |
Error klien
Kode status berikut ditujukan untuk error klien, dan Anda harus mengambil tindakan untuk mengatasinya. Consumer SDK terus mencoba me-refresh perjalanan hingga Anda mengakhiri berbagi perjalanan, tetapi tidak akan dipulihkan hingga Anda mengambil tindakan.
Kode Status | Deskripsi |
---|---|
INVALID_ARGUMENT | Aplikasi Konsumen menentukan nama perjalanan yang tidak valid; Nama perjalanan harus
mengikuti format providers/{provider_id}/trips/{trip_id} .
|
NOT_FOUND | Perjalanan tidak pernah dibuat. |
PERMISSION_DENIED | Aplikasi Konsumen tidak memiliki izin yang memadai. Error ini terjadi saat:
|
RESOURCE_EXHAUSTED | Kuota resource nol, atau laju aliran traffic melebihi batas kecepatan. |
TIDAK DIAUTENTIKASI | Autentikasi permintaan gagal karena token JWT tidak valid. Error ini terjadi saat token JWT ditandatangani tanpa ID perjalanan, atau saat masa berlaku token JWT sudah habis. |