簡體   English   中英

使用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運算符,它返回一個Throwable ,你可以用以下方法對instanceof進行檢查:

 Throwable err = Completable.error(new IOException()).blockingGet();
 if (err instanceof IOException) {
     // ...
 }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM