我在Android 1.7的語言級別上使用RxJava 1.x(所以不需要lambda的)。我正在嘗試使用zip()
運算符合並4個流。但是,我使用的Func4
實現可能會遇到需要以某種方式處理的IOException
。但是,Func4#call()
簽名不允許拋出異常。所以我想知道如何處理這些。理想情況下,例外情況將發送到Subscriber
的onError()
方法,該方法將訂閱zip()
操作產生的Observable
。如何在zip()函數中向用戶提供異常
一些示例代碼:
public Observable<R> combine(Observable<A> observable1, Observable<B> observable2, Observable<C> observable3, Observable<D> observable4) {
return Observable<R>.zip(observable1, observable2, observable3, observable4, new Func4<A, B, C, D, R> {
public R call(A a, B b, C c, D d) {
// some code which may throw IOExceptions
}});
}
另請注意,您可以將IOE作爲原因包含在runtimeexception中,以便您可以檢索onError中的實際異常。 – njzk2
感謝您的快速響應! – Matthias