Как продолжить обработку следующих исключений для следующего фрагмента кода? - PullRequest
0 голосов
/ 14 ноября 2018

Когда я запускаю код, вывод будет следующим:

(а) Тест (а = 100)

(b) ошибка здесь - java.lang.NullPointerException

В текущем выводе всякий раз, когда второй элемент выдает исключение, обработка потока прекращается. Но я хочу обработать третий объект, как эти

(а) Тест (а = 100)

(b) ошибка здесь {} java.lang.NullPointerException

(с) Тест (а = 200)

public class Test {
    Integer a;

    public Integer getA() {
        return a * 10;
    }

    public static void main(String[] args) {
        Test test = new Test(10);
        Test test2 = new Test(null); //this object throws exception when it enters flowable
        Test test3 = new Test(20);

        List<Test> strings = Arrays.asList(test, test2, test3);

        Flowable.fromCallable(() -> strings)
            .flatMap(s -> Flowable.fromIterable(s)
                .flatMap(a -> {
                    System.out.println(a);
                    return Flowable.just(a);
                })
                .onErrorResumeNext(r -> {
                    System.out.println("error here " + r);
                    return Flowable.empty();
                })
            )
            .onErrorResumeNext(s -> {
                return Flowable.empty();
            })
           .subscribe();
    }`
}

Я пробовал вышеуказанный подход, но он не работает.

...