android - 在 CompositeException 中抛出捕获的异常结果
问题描述
在下面的代码中,当不再从 Sqlite 数据库中读取记录时,我得到一个 EmptyResultSetException。这是意料之中的。此异常在 doOnError 中捕获。如果我抛出此异常,订阅者的 onError 处理程序中捕获的异常将变为 CompositeException。CompositeException 包含一个异常列表,在这种情况下,它只包含一个恰好是 EmptyResultSetException 的异常。最初,在更改我的代码之前,EmptyResultSetException 被直接发送到订阅者的 onError 处理程序。现在它被放入一个 CompositeException 中。这可能是什么原因造成的?
val msgToSendPublisher = BehaviorSubject.createDefault(MessageToSend())
msgToSendPublisher
.flatMap { _ ->
App.context.repository.getMessageToSend().flatMapObservable { messageToSend -> Observable.just(messageToSend) }
}
.doOnError { error ->
throw error
}
.doOnNext {
msgToSendPublisher.onNext(it)
}
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(
{ messageToSend ->
},
{ ex ->
if (ex !is EmptyResultSetException) {
}
},
{
}
)
解决方案
推荐阅读
- angular - 调用 PUT web api:跨域请求阻塞问题
- java - jpa 实体 bean 的默认范围是什么?它有什么帮助?
- ruby-on-rails - 如何在 Rails 中覆盖 mongoid 客户端
- machine-learning - 我们如何在 Windows 中使用英特尔 Movidius 神经计算棒来定制模型
- vba - 我对撇号的查询和使用是否正确?
- r - R:如何计算数据帧的每个值与同一行中另一个数据帧的所有元素之间的差异?
- protocol-buffers - Is there an option to import services from other proto files?
- javascript - How can i apply multiple filters and multiple value in JS?
- asp.net-core - 如何在 ASP.NET Core mvc 中的模型绑定上将字符串转换为值类型
- database - 如何修复 Cassandra 服务器中的“活动:活动(退出)”问题?