【发布时间】:2021-11-02 15:06:10
【问题描述】:
rx.Observable.onErrorResumeNext 和 rx.Observable.onExceptionResumeNext 有什么区别?
据我所知:
onErrorResumeNext由Throwable触发。
onExceptionResumeNext 仅由Exception 触发。
还有其他我遗漏的细节吗?
【问题讨论】:
rx.Observable.onErrorResumeNext 和 rx.Observable.onExceptionResumeNext 有什么区别?
据我所知:
onErrorResumeNext由Throwable触发。
onExceptionResumeNext 仅由Exception 触发。
还有其他我遗漏的细节吗?
【问题讨论】:
查看onExceptionResumeNext()的文档:
指示反应类型在遇到
java.lang.Exception后继续发射项目。与onErrorResumeNext不同的是,这个可以让其他类型的Throwable继续。
所以onExceptionResumeNext() 只“捕获”异常,onErrorResumeNext() 将“捕获”任何Throwable 实例。
【讨论】:
onErrorResumeNext 这个名字感到困惑。我相信改用onThrowableResumeNext 会更好,但要意识到,由于向后兼容性,现在这是不可能的
OnError 可能来自 RX 的一般概念,其中使用了术语 next、error 和 complete。