作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有这个函数可以发出网络请求并将结果写入 SQLDelight 数据库:
@Throws(Exception::class)
suspend fun updateData()
在 Xcode 的 iOS 项目中,我看到该函数被转换为类型为
(KotlinUnit?, Error?) -> Void
的 completionHandler 的函数。 .
localizedDescription
.如果我投给
NSError
然后我可以获得更多可见的字段,但它们都没有任何帮助。
Ktor
中的每个错误http 客户端被抛出为
Error
在 swift 。这使得很难知道引发了什么样的错误。
最佳答案
您可以使用 MVP
架构,让 Presenter
组件处理这些错误,它只是向 View 指示要去哪里。
像这样的东西:shared/MyPresenter.kt
// ...
when (throwable) {
is Unauthorized -> {
view?.showInvalidCredentials()
}
is Conflict -> {
view?.showConflictAccount()
}
else -> {
view?.showError(throwable)
}
}
使用这种方法,您将从平台 View 中删除该责任。
关于android - iOS中的Kotlin Multiplatform Mobile : How to handle errors (network, db等)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65498994/
我是一名优秀的程序员,十分优秀!