ios - 如何使用“try”、“catch”和“throw”处理 iOS (Swift) 应用程序中的崩溃?
问题描述
我正在开发一个 iOS 应用程序。我正在使用 Swift 4.2 和 Xcode 10.1。
我必须处理我的 iOS 应用程序中的任何崩溃并显示一个包含崩溃详细信息的弹出窗口,以便我可以改善我的应用程序中的用户体验。
我对 iOS (Swift) 中的异常处理知之甚少。
这是我的代码:
do{
try self.fetchRecommendations()
print("Success! Yum.")
} catch {
print("\(error.localizedDescription)")
}
我正在调用方法'fetchRecommendations'
,并且在此方法块中放置了强制崩溃代码。
func fetchRecommendations()throws{
try fatalError()
}
在这条线上 try fatalError()
应用程序不应该崩溃并且这条线
print("\(error.localizedDescription)") should be executed.
解决方案
查看有关它的苹果文档(Representing and Throwing Errors)。而不是使用fatalError
你应该在你的fetchRecommendations()
函数中抛出一个错误。这就是为什么您将信号词throws
放在那里以表明该函数可能会引发错误。
使用这个throw
词抛出错误,例如:
throw VendingMachineError.insufficientFunds(coinsNeeded: 5)
全部来自 Apple 文档。
推荐阅读
- html - 屏幕在引导程序 4 上分成 3
- java - 有没有办法将一个 ArrayList 与另一个具有一对多关系的 ArrayList 关联起来?
- algorithm - 证明表达式的运行时间
- javascript - 如何在单个属性上正确合并 2 个 JS 对象
- php - MySQL LIKE 语句返回奇数结果
- python-3.x - 如何修改此插件以使用 mp3 标签而不是 lrc 文件?
- keras - 具有学习词嵌入、LSTM、Keras 的命名实体识别
- c# - 如何修复“短语”不能为空字符串。参数名称:词组'?
- r - geom_map fill = 变量将每个值拆分为单独的颜色而不是渐变
- angular - 创建已弃用:从 v5 开始使用新签名 Injector.create(options)(弃用)