鍍金池/ 教程/ Android/ 從錯(cuò)誤中恢復(fù)的技術(shù)
調(diào)度器 Scheduler
Empty/Never/Throw
Replay
這個(gè)頁(yè)面展示了創(chuàng)建Observable的各種方法。
ObserveOn
ReactiveX
TimeInterval
Window
本頁(yè)展示的操作符用于對(duì)整個(gè)序列執(zhí)行算法操作或其它操作,由于這些操作必須等待數(shù)據(jù)發(fā)射完成(通常也必須緩存這些數(shù)據(jù)),它們對(duì)于非常長(zhǎng)
IgnoreElements
Distinct
Last
Start
And/Then/When
Switch
創(chuàng)建操作
Materialize/Dematerialize
CombineLatest
Catch
實(shí)現(xiàn)自己的操作符
StringObservable
Map
ConnectableObservable
Using
Take
BlockingObservable
TakeLast
Defer
RxJavaSchedulersHook
First
FlatMap
這個(gè)頁(yè)面的操作符可用于根據(jù)條件發(fā)射或變換Observables,或者對(duì)它們做布爾運(yùn)算:
Do
Repeat
Serialize
這個(gè)頁(yè)面展示的操作符可用于過濾和選擇Observable發(fā)射的數(shù)據(jù)序列。
這個(gè)頁(yè)面列出了很多用于Observable的輔助操作符
Single
Retry
從錯(cuò)誤中恢復(fù)的技術(shù)
Sample
Merge
算術(shù)和聚合操作
Range
Timestamp
RxJava Issues
From
Subscribe
Subject
Delay
Skip
SubscribeOn
Filter
按字母順序排列的全部操作符列表
Timeout
Scan
onError
Zip
RxJava文檔和教程
Publish
ElementAt
第一個(gè)例子
SkipLast
Just
Timer
Debounce
GroupBy
條件和布爾操作
這個(gè)頁(yè)面展示了可用于對(duì)Observable發(fā)射的數(shù)據(jù)執(zhí)行變換操作的各種操作符。
Introduction
rxjava-async
介紹響應(yīng)式編程
這個(gè)頁(yè)面展示的操作符可用于組合多個(gè)Observables。
ReactiveX
Connect
操作符分類
StartWith
Interval
Join
To
Buffer
RefCount
介紹
Observable

從錯(cuò)誤中恢復(fù)的技術(shù)

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ù),例如,你可以:

  1. 吞掉這個(gè)錯(cuò)誤,切換到一個(gè)備用的Observable繼續(xù)發(fā)射數(shù)據(jù)
  2. 吞掉這個(gè)錯(cuò)誤然后發(fā)射默認(rèn)值
  3. 吞掉這個(gè)錯(cuò)誤并立即嘗試重啟這個(gè)Observable
  4. 吞掉這個(gè)錯(cuò)誤,在一些回退間隔后重啟這個(gè)Observable

你可以使用 [[異常處理操作符|Error Handling Operators]] 描述的操作符實(shí)現(xiàn)這些策略。

RxJava特有的異常

CompositeException
表示發(fā)生了多個(gè)異常。你可以使用異常的 getExceptions() 方法獲取單獨(dú)的異常。
MissingBackpressureException
表示一個(gè)訂閱者或者操作符試圖對(duì)一個(gè)不支持反壓操作的Observable應(yīng)用該操作??梢詤⒖?[[Backpressure]] 查找針對(duì)沒有實(shí)現(xiàn)反壓操作的Observable的解決辦法。
OnErrorFailedException
表示Observable嘗試調(diào)用觀察者的 onError() 方法,但是那個(gè)方法自己拋出了異常。
OnErrorNotImplementedException
表示一個(gè)Observable嘗試調(diào)用它的觀察者的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)。
上一篇:StartWith下一篇:FlatMap