소비자 SDK 오류 처리

소비자 SDK가 콜백을 사용하여 소비자 앱에 경로 업데이트 오류를 전송합니다. 메커니즘입니다. 콜백 매개변수는 플랫폼별 반환 유형 ( TripUpdateErrorNSError (iOS의 경우)

상태 코드 추출

콜백에 전달되는 오류는 일반적으로 gRPC 오류이며 상태 코드 형식으로 추가 정보를 추출합니다. 대상 상태 코드의 전체 목록은 gRPC에서 상태 코드 및 상태 코드 사용

자바

오류에 대한 세부정보를 제공하는 gRPC 상태 코드를 추출할 수 있습니다. onTripUpdateError()에서 반환된 TripUpdateError에서 반환합니다.

// Called when there is a trip update error.
@Override
public void onTripUpdateError(TripInfo tripInfo, TripUpdateError error) {
  Status.Code code = error.getStatusCode();
}

Kotlin

오류에 대한 세부정보를 제공하는 gRPC 상태 코드를 추출할 수 있습니다. onTripUpdateError()에서 반환된 TripUpdateError에서 반환합니다.

// Called when there is a trip update error.
override fun onTripUpdateError(tripInfo: TripInfo, error: TripUpdateError) {
  val code = error.getStatusCode()
}

Swift

NSErrortripModel(_: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

NSErrortripModel: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;
    ...
  }
}

상태 코드 해석

상태 코드에는 서버 및 네트워크 관련 오류와 클라이언트 측 오류입니다.

서버 및 네트워크 오류

다음 상태 코드는 네트워크 또는 서버 오류에 대한 것이므로 별도의 조치를 취하지 않아도 됩니다 소비자 SDK는 복구될 수 있습니다

상태 코드설명
ABORTED 서버에서 응답 전송을 중지했습니다. 이것은 일반적으로 서버 문제입니다.
CANCELLED 서버가 발신 응답을 종료했습니다. 이것은 일반적으로 일어날 때
백그라운드로 전송되거나 앱의 상태 변경이 있을 때
소비자 앱
INTERRUPTED
DEADLINE_EXCEEDED 서버가 응답하는 데 시간이 너무 오래 걸립니다.
현재 구매할 수 없음 서버를 사용할 수 없습니다. 이 문제는 일반적으로 네트워크 또는 있습니다.

클라이언트 오류

다음 상태 코드는 클라이언트 오류용이며 해결할 수 있습니다 소비자 SDK는 탐색 여정 공유가 종료되지만 사용자가 조치를 취하기 전에는 복구되지 않습니다

상태 코드설명
INVALID_ARGUMENT 소비자 앱에서 잘못된 경로 이름을 지정했습니다. 이동 이름은 providers/{provider_id}/trips/{trip_id} 형식을 따라야 합니다.
NOT_FOUND 이동이 생성되지 않았습니다.
PERMISSION_DENIED 소비자 앱의 권한이 충분하지 않습니다. 이 오류는 다음과 같은 경우에 발생합니다.
  • 소비자 앱에 권한이 없음
  • Google Cloud의 프로젝트에 소비자 SDK가 사용 설정되지 않았습니다. 콘솔을 클릭합니다.
  • JWT 토큰이 누락되었거나 잘못되었습니다.
  • JWT 토큰이 요청한 여정입니다.
RESOURCE_EXHAUSTED 리소스 할당량이 0이거나 트래픽 흐름 속도가 속도를 제한합니다.
UNAUTHENTICATED 잘못된 JWT 토큰으로 인해 요청이 인증에 실패했습니다. 이 JWT 토큰이 이동 ID 없이 서명된 경우 오류가 발생합니다. JWT 토큰 만료 시