当订户在rxjava中引发异常时,如何继续处理?

时间:2018-09-30 07:52:05

标签: java rx-java

我有一个PublishSubject和两个Subscriber用于处理数据。 问题是,当Subscriber中的一个发生异常时,Subscriber似乎不再起作用。 我想忽略它们,并继续处理而不使用try-catch。我该怎么办?

    Subject<Integer, Integer> subject = PublishSubject.create();
    Observable<Integer> observable = subject.onBackpressureBuffer().asObservable().observeOn(Schedulers.io());

    observable.subscribe(integer -> {
        if (integer == 2) {
            throw new RuntimeException();
        }
        System.out.println("thread-1 :" + integer);
    }, throwable -> System.out.println("thread-1 :" + throwable.getMessage()));

    observable.subscribe(integer -> System.out.println("thread-2 :" + integer), throwable -> System.out.println("thread-2 :" + throwable.getMessage()));
    for (int i = 0; i < 10; i++) {
        TimeUnit.SECONDS.sleep(1L);
        try {
            subject.onNext(i);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

enter image description here

0 个答案:

没有答案