画竜点睛を衝く@mapyo

日々やった事をつらつらと書くブログです

RxJavaでPublishSubjectをsubscribeした時にonErrorが呼ばれるとそれ以降動かなくなる

サンプルコード

        subject.subscribe ({ number ->
            println(number.toString())

            if (number == 3) throw RuntimeException()
        }, {
            println("onError")
        }, {
            println("onComplete")
        })

        subject.onNext(1)
        subject.onNext(2)
        subject.onNext(3)
        subject.onNext(4)
        subject.onNext(5)

実行結果

1
2
3
onError

4と5が表示されない

所感

onErrorに入った時にちゃんと気がつけないと、何故かいきなり動かなくなってる。。。! という辛みがあるので注意。