0
使用Retrofit2和RxJava2时,抛出自定义异常有问题。如何使用Retrofit2和RxJava2抛出自定义异常
改造阿比定义
public interface BackendInterface {
@Headers({"......"})
@POST("international-services/")
Observable<BackendResponse> post(@Body BackendRequest request, @Header("sessionId") String sessionId);
}
改造阿比
@Override
public Observable<SomeBusinessObject> getSomething(@NonNull String sessionId, @NonNull SomeOtherBusinessObject something) {
BackendRequest br = createBackendRequest(something);
return backendInterface.post(br, sessionId).map(backendResponse -> {
if (backendResponse.getResult().getCode() != 0) {
return Observable.error(new ServiceException("my custom exception"));
}
SomeBusinessObject result = mapBusinessObject(br);
return result;
});
}
问题的用法是以下行
return Observerable.error(new ServiceException("my custom exception"));
Android Studio中标记它因为Observable符合SomeBusinessObject推理变量R具有不兼容的界限:等于约束:SomeBusinessObject下界:Observable
IDE的快速修复建议使用我的方法“getSomething”返回Observable。
我不知道如何将自定义异常转发给我observable的订户。
替换回报我不知道你在哪里得到'Observerable'的解决方案。一旦你改正了错字,请更新你的问题。 –