【发布时间】:2021-01-27 03:06:38
【问题描述】:
我是 iOS 开发的新手,所以我的想法可能有误。我用调用 API 的函数编写了一个视图模型,一切正常。
class SearchCityViewModel : ViewModelProtocol {
//OBSERVABLES
var cities = PublishSubject<[City]>()
var networkError = PublishSubject<Void>()
var generalError = PublishSubject<Void>()
init(){
print("Init SearchCityViewModel")
reinit()
}
func reinit(){}
func searchCity(stringToSearch: String){
async {
do {
if stringToSearch.count>=2 {
let cities = try await(api.getCities(cityToSearch: stringToSearch)).payload!
self.cities.onNext(cities)
}
else {
self.cities.onNext([])
}
}
catch {
self.generalError.onNext(Void())
}
}
}
现在我想处理错误。在 catch 块中,我想区分我想要优雅处理的所有错误,而对于其他错误,我只想发出一般错误。为此,首先我需要知道当我想要处理的情况发生时会引发哪个错误。我通常用调试器来做这件事。例如,我禁用了互联网连接,并在 catch 块内创建了一个断点。这个想法是检查禁用 Internet 连接时引发的错误,以便为这种错误创建一个 catch 块。
我很挣扎,因为使用调试器我只看到这是一个 AFError 实例,但它并没有告诉我更多可以帮助我捕捉它的信息。
我的工作流程有什么问题?我真的需要每次都阅读所有文档吗?对于我使用的每个库?
谢谢!
【问题讨论】:
标签: ios swift xcode debugging error-handling