如何在android中处理rxjava链中的错误?

如何在android中处理rxjava链中的错误?,android,rx-java,rx-kotlin,rx-kotlin2,Android,Rx Java,Rx Kotlin,Rx Kotlin2,我有一个项目列表,例如整数列表,如果任何整数为空,我需要使用错误并继续下一个项目 比如说 Observable.fromIterable(listOf(1, 2, 3, null, 5)) .map { doSomeProcess(it) } .onErrorReturnItem(-1) .subscribeBy(

我有一个项目列表,例如整数列表,如果任何整数为空,我需要使用错误并继续下一个项目

比如说

Observable.fromIterable(listOf(1, 2, 3, null, 5))
                .map {
                    doSomeProcess(it)
                }
                .onErrorReturnItem(-1)
                .subscribeBy(
                        onNext = {
                           print(it)
                        },
                        onError = {

                        },
                        onComplete = {

                        })
我期待这样的输出

1
2
3
-1
5

但我的问题是在
-1
之后,它没有继续执行项目
5
,它就停在那里了,有人能帮我解决这个问题吗?

在Rx onError中,这是一个终止事件。所以,如果您不想中断流,而只是处理错误并继续接收其他数据,您可以使用

Observable.fromIterable(列表(1,2,3,null,5))
.地图{
doSomeProcess(it)
}
.订阅人(
onNext={
什么时候{
it.isOnNext->{
val结果=it.value
如果(结果==-1){
//在这里处理错误
}
}
//it.isOnComplete->{
//}
//it.ison错误->{
//}
}
}
)
私有进程(i:Int?):通知=
如果(i==null)
//Notification.createOnError(IllegalArgumentException())
通知.createOnNext(-1)
其他的
通知.createOnNext(i)

你能举个例子吗?
 Observable.fromIterable(listOf(1, 2, 3, null, 5))
            .map {
                doSomeProcess(it)
            }
            .subscribeBy(
                onNext = {
                    when {
                        it.isOnNext -> {
                            val result = it.value
                            if(result == -1){
                                //handle error here
                            }
                        }
                        //it.isOnComplete -> {
                        //}
                        //it.isOnError -> {
                        //}
                    }
                }
            )


 private fun doSomeProcess(i: Int?): Notification<Int> =
    if (i == null)
        //Notification.createOnError(IllegalArgumentException())
        Notification.createOnNext(-1)
    else
        Notification.createOnNext(i)