RxJava – ¿Cómo llamar el método onError() de .subscribe()?
Tengo un Single.fromCallable()
al que estoy suscrito. Utilizando LiveData, estoy intentando probar la manipulación de errores de la interfaz de usuario dentro del método de devolución de llamada onError()
de .subscribe()
.
He intentado lanzar Exceptions
, llamar a disposable.dispose()
, pero no puedo simular un error para que vaya directamente al bloque onError()
.
Single.fromCallable(() -> remoteRepository.doSomething())
.subscribeOn(Schedulers.newThread())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new SingleObserver<biginteger>() {
@Override
public void onSubscribe(@NonNull Disposable d) {
walletStatusLiveData.setValue("Ahora suscrito");
// ¿Cómo simulo el error aquí para que salte a onError() y pueda probar mi manejo de errores en la interfaz de usuario?
throw new IllegalArgumentException(); // La aplicación se bloquea
throw new RuntimeException(); // La aplicación se bloquea
try {
throw new IllegalArgumentException(); // Este trycatch no hace nada y se llama a onSuccess
}catch (Exception e){
}
d.dispose(); // Esto sale completamente de los 3 métodos de devolución de llamada.
}
@Override
public void onSuccess(@NonNull BigInteger result) {
walletStatusLiveData.setValue("¡En éxito!");
}
@Override
public void onError(@NonNull Throwable e) {
Log.e(TAG, "onError: getWalletBalance Llamado", e);
walletStatusLiveData.setValue("Probando interfaz de usuario de error");
// ¿Cómo puedo activar este método de devolución de llamada en onSubscribe o onSuccess?
}
});
¿Qué debo llamar para saltar a .onError()
?
davy.ai
Para saltar a
.onError()
, puedes lanzar una excepción dentro deSingle.fromCallable()
. Aquí tienes un ejemplo:De esta manera, cuando se ejecute
Single.fromCallable()
, lanzará una excepción y la ejecución saltará directamente a.onError()
.