與操作訂閱時如何處理異常下面是一個簡單的例子:在RXJava
Completable c = Completable.create(new CompletableOnSubscribe() {
@Override
public void subscribe(@NonNull CompletableEmitter e) throws Exception {
throw new Exception("Oh No!");
}
});
try {
c.subscribe(new Action() {
@Override
public void run() throws Exception {
Timber.v("It's ok");
}
});
}
catch (Exception e) {
e.printStackTrace();
Timber.v("Error");
}
在這種情況下,我會預計將捕捉到的異常但它會導致應用程序崩潰。那麼我們應該如何處理由內部類方法拋出的異常呢?
我知道我們可以通過訂閱CompletableObserver
來處理這個問題,但它增加了我想避免的額外冗長度,我覺得必須有一種方法來處理這種異常,其他操作消費者也不會這樣做,非常有用。
有一個[重載](http://reactivex.io/RxJava/2.x/javadoc/io/reactivex/Completable.html#subscribe-io.reactivex.functions.Action-io.reactivex.functions。消費者 - )接受錯誤的消費者,您可以處理異常。此外,試圖捕捉這樣的反應性組件不起作用,因爲它們表示錯誤而不是(重新)拋出它們。 – akarnokd
你能否提供一個例子,我發現很難想象你的意思。 –