J'ai un problème avec le lancement d'exceptions personnalisées lors de l'utilisation de Retrofit2 et RxJava2.Comment lancer une exception personnalisée avec Retrofit2 et RxJava2
Rénovation définition api
public interface BackendInterface {
@Headers({"......"})
@POST("international-services/")
Observable<BackendResponse> post(@Body BackendRequest request, @Header("sessionId") String sessionId);
}
Utilisation de Rénovation Api
@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;
});
}
Le problème est la ligne suivante
return Observerable.error(new ServiceException("my custom exception"));
Android Studio est le marque comme erreur et dit "aucune instance de type variable (y) T existe pour que Observable soit conforme à la variable d'inférence SomeBusinessObject R a des limites incompatibles: contraintes d'égalité: Limites inférieures SomeBusinessObject: Observable
La solution rapide de l'IDE suggère de faire ma méthode "getSomething" renvoie Observable.
Je n'ai aucune idée de comment transférer des exceptions personnalisées à l'abonné de mon observable.
Je ne sais pas où vous obtenez 'Observerable' de. Une fois que vous aurez corrigé la faute de frappe, veuillez mettre à jour votre question. –