作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的 PagingSource 加载一些数据。文档建议像这样捕获异常,以便将来处理 LoadResult.Error。
override suspend fun load(params: LoadParams<Int>): LoadResult<Int, Item> {
return try {
...
throw SomeCatchableException()
...
} catch (e: SomeCatchableException) {
LoadResult.Error(e)
} catch (e: AnotherCatchableException) {
LoadResult.Error(e)
}
}
但是当我尝试这样处理时:
(adapter as PagingDataAdapter).loadStateFlow.collectLatest { loadState ->
when (loadState.refresh) {
is LoadState.Loading -> {
// *do something in UI*
}
is LoadState.Error -> {
// *here i wanna do something different actions, whichever exception type*
}
}
}
我想知道哪个 Exteption 会被捕获,因为我在参数 LoadResult.Error(e) 中传递了它 (Throwable)。
如何知道loadState处理异常的类型?
最佳答案
在 LoadState.Error 情况下,您可以从 loadState.refresh 捕获错误,您只是错过了将 loadState.refresh 强制转换为 LoadState.Error。或者试试这样:
when (val currentState = loadState.refresh) {
is LoadState.Loading -> {
...
}
is LoadState.Error -> {
val extractedException = currentState.error // SomeCatchableException
...
}
}
关于android - 从 PagingSource 的 LoadResult.Error 中提取 Throwable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67907903/
我的 PagingSource 加载一些数据。文档建议像这样捕获异常,以便将来处理 LoadResult.Error。 override suspend fun load(params: LoadP
我是一名优秀的程序员,十分优秀!