0
我最近开始使用RxJava 2,并且想知道在调用Completable.blockingAwait()
时是否可以捕获更具体的异常。使用Completable.blockingAwait()时捕获异常
这是我在做什么:
try {
Completable.create(new CompletableOnSubscribe() {
@Override
public void subscribe(@NonNull CompletableEmitter e) throws Exception {
e.onError(new IOException());
}
}).blockingAwait();
} catch (RuntimeException e) {
Throwable cause = e.getCause();
if(cause instanceof IOException) {
// Handle IOException
}
}
这是我想要做的是什么:
try {
Completable.create(new CompletableOnSubscribe() {
@Override
public void subscribe(@NonNull CompletableEmitter e) throws Exception {
e.onError(new IOException());
}
}).blockingAwait();
} catch (IOException e) {
// Handle IOException
}
是否有可能使这项工作?
'instanceof'?我是对的,[Single.blockingGet()'](http://reactivex.io/RxJava/2.x/javadoc/io/reactivex/Single.html#blockingGet())没有其他选择。捕获'RuntimeException'并使用'instanceof'进行错误处理? –
'blockingGet'不会抛出并手动抛出返回的错误看起来有点尴尬。 – akarnokd