使用 Completable.blockingAwait() 时捕获异常
Catch Exceptions when using Completable.blockingAwait()
我最近开始使用 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
}
有没有可能使这个工作?
在链接的 Javadoc 中的几行下面有 blockingGet
运算符,returns 一个 Throwable
你可以用 instanceof
检查:
Throwable err = Completable.error(new IOException()).blockingGet();
if (err instanceof IOException) {
// ...
}
我最近开始使用 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
}
有没有可能使这个工作?
在链接的 Javadoc 中的几行下面有 blockingGet
运算符,returns 一个 Throwable
你可以用 instanceof
检查:
Throwable err = Completable.error(new IOException()).blockingGet();
if (err instanceof IOException) {
// ...
}