RxJava : Comment gérer l'erreur avec zip opérateur ?

Je suis en utilisant RxJava et RxAndroid avec Retrofit2.

Observable<ResponseOne> responseOneObservable = getRetrofitClient().getDataOne()
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread());

Observable<ResponseTwo> responseTwoObservable = getRetrofitClient().getDataTwo()
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread());

À l'aide de zip opérateur comme ci-dessous sur les deux ci-dessus de l'Observateur.

 Observable<ArrayList<TestData>> testDataObservable = Observable.zip(responseOneObservable, responseTwoObservable, new Func2<ResponseOne, ResponseTwo, ArrayList<TestData>>() {
            @Override
                public ArrayList<TestData> call(ResponseOne responseOne, ResponseTwo responseTwo) {
                  ArrayList<TestData> testDataList = new ArrayList();
                      //Add test data from response responseOne & responseTwo
                  return testDataList;
            } 
    })
    .subscribeOn(Schedulers.io())
    .observeOn(AndroidSchedulers.mainThread())
    .subscribe(new Subscriber<ArrayList<TestData>>() {

        @Override
        public void onNext(ArrayList<TestData> testDataList) {

        }

        @Override
        public void onCompleted() {
            Log.d(TAG, "onCompleted" );
        }

        @Override
        public void onError(Throwable t) {
            Log.d(TAG, "onError Throwable: " + t.toString() );
        }
    });

Si il y a une erreur se produit au cours de rénovation http appel dans responseOneObservable et responseTwoObservable puis il va appeler directement onError méthode d'abonné de testDataObservable.

Je veux continuer dans le zip de l'opérateur call méthode, même si quelqu'un de deux observables a obtenu le succès de réponse.

Comment gérer l'erreur de réponse à l'aide de zip opérateur ?