Error handling Rxjava2和重新重试错误处理不起作用

Error handling Rxjava2和重新重试错误处理不起作用,error-handling,retrofit,rx-java2,Error Handling,Retrofit,Rx Java2,我在我的项目中使用改型2和rxjava2,我正在努力处理错误 private Observable<Segment> executeUploadVideoUseCase(Segment segment) { LogDnaLogger.info("Segment upload: " + segment.toString()); return mUploadVideoUseCase.execute().flatMap(voidRespon

我在我的项目中使用改型2和rxjava2,我正在努力处理错误

        private Observable<Segment> executeUploadVideoUseCase(Segment segment) {
        LogDnaLogger.info("Segment upload: " + segment.toString());

        return mUploadVideoUseCase.execute().flatMap(voidResponse -> {
            LogDnaLogger.info("Segment upload success : " + segment.toString());
            return Observable.just(segment);
        });

    }

mUploadVideoUseCase.execute() is returning 
Observable<Response<Void>>.
private observeable executeUploadVideoUseCase(段){
LogDnaLogger.info(“段上传:+Segment.toString());
返回mUploadVideoUseCase.execute().flatMap(voidResponse->{
LogDnaLogger.info(“段上传成功:+Segment.toString());
可观察的返回。仅(段);
});
}
mUploadVideoUseCase.execute()正在返回
可见的。
我来段上传成功日志,即使有400个坏请求例外


在这里,我如何处理400个错误请求并将该异常传递给调用函数?

当您将接口声明为“可观察的”成功,HTTP错误在
onNext
中传递,并且只有在网络错误的情况下发生IO异常时才会调用
onError

您可以使用
Response.issucess()
检查这是成功的调用还是HTTP错误

来自以下方面的其他备选声明:

可观察的
可流动的
支持三种配置,
单个
可完成
可能
类型参数:

  • 直接主体(例如,
    Observable
    )使用反序列化主体调用
    onNext
    对于2XX响应和调用
    onError
    HttpException
    非2XX响应和
    IOException
    网络错误
  • 响应包装体(例如,
    Observable
    )调用
    onNext
    使用
    Response
    对象,用于所有HTTP响应和调用
    onError
    with
    IOException
    网络错误
  • 结果包装体(例如,
    Observable
    )使用
    Result
    对象,用于所有HTTP响应和错误