首页 > 解决方案 > 如何使用“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.

但应用程序仍然崩溃: 在此处输入图像描述

标签: iosexceptioncrashswift4

解决方案


查看有关它的苹果文档Representing and Throwing Errors)。而不是使用fatalError你应该在你的fetchRecommendations()函数中抛出一个错误。这就是为什么您将信号词throws放在那里以表明该函数可能会引发错误。

使用这个throw词抛出错误,例如:

throw VendingMachineError.insufficientFunds(coinsNeeded: 5)

全部来自 Apple 文档。


推荐阅读