So rather than catch exceptions, your observer or operator should more typically respond to onError
notifications of exceptions. There are also a variety of Observable operators that you can use to react to or recover from onError
notifications from Observables. For example, you might use an operator to:
因此,你的觀察者或者操作符應(yīng)該對(duì)異常發(fā)生時(shí)的 onError
通知做出合適的響應(yīng),而不是捕獲(catch)異常。很多操作符可用于對(duì)Observable發(fā)射的onError
通知做出響應(yīng)或者從錯(cuò)誤中恢復(fù),例如,你可以:
你可以使用 [[異常處理操作符|Error Handling Operators]] 描述的操作符實(shí)現(xiàn)這些策略。
CompositeException
getExceptions()
方法獲取單獨(dú)的異常。MissingBackpressureException
OnErrorFailedException
onError()
方法,但是那個(gè)方法自己拋出了異常。OnErrorNotImplementedException
onError()
方法,但是那個(gè)方法不存在。有多種方法可以消除這個(gè)錯(cuò)誤:可以調(diào)整Observable使它不會(huì)到達(dá)這個(gè)錯(cuò)誤條件,也可以在觀察者中實(shí)現(xiàn)一個(gè)onError
處理器, 或者使用其它的操作符在錯(cuò)誤到達(dá)之前攔截這個(gè) onError
通知。OnErrorThrowable
onError()
方法。相比標(biāo)準(zhǔn)的Throwable
,這種Throwable包含更多的信息:錯(cuò)誤本身和在錯(cuò)誤發(fā)生時(shí)Observable的內(nèi)部狀態(tài)。