RxSwift 中的错误处理

本文最后更新于 2021年4月4日 晚上

这篇同样是看 RxSwift 中的错误处理内容的笔记, 方便日后翻阅.

错误处理

有两种途径可以进行错误处理: catchErrorretry.

使用 Swift 风格的错误 throw, 另外使用 RxSwift 的错误捕捉操作符在序列上进行错误捕捉并处理, 比如 catchErrorJustReturnxxx, 或者是 catchError.

1
2
3
4
5
6
7
.catchError { error in
if let text = text, let cachedData = self.cache[text] {
return Observable.just(cachedData)
} else {
return Observable.just(ApiController.Weather.empty)
}
}

retry 操作符的作用是当某个序列产生错误并终止后, 可以重启这个序列(意味着这个序列内的所有任务都重新开始).

一般来说, 如果在产生错误的时候需要在用户界面上进行副作用操作, 都需要放到 do(onXXX) 块中去.

另外在某些情况下如果想要对序列进行 debug 来查看错误序列的整体情况, 可以使用 material 操作符来达到目的.

可以使用 retryWhen 在网络恢复后重新进行网络数据请求.


RxSwift 中的错误处理
https://blog.rayy.top/2019/01/27/2019-40-rxswift-error-handling/
作者
貘鸣
发布于
2019年1月27日
许可协议