我最近开始使用RxJava 2,并且想知道在调用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
}
有没有可能让这项工作?
答案 0 :(得分:0)
在链接的Javadoc中有几行,blockingGet
运算符返回Throwable
,您可以instanceof
进行检查:
Throwable err = Completable.error(new IOException()).blockingGet();
if (err instanceof IOException) {
// ...
}