如何使用“ try”,“ catch”和“ throw”处理iOS(Swift)应用程序中的崩溃?

时间:2019-03-05 11:56:59

标签: ios exception crash swift4

我正在使用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.

但是应用程序仍然崩溃: enter image description here

1 个答案:

答案 0 :(得分:2)

看看有关它的苹果documentation表示和抛出错误)。而不是使用fatalError,您应该在fetchRecommendations()函数中引发错误。这就是为什么在其中放置信号词throws来表明此函数可能引发错误的原因。

使用throw一词引发错误,例如:

throw VendingMachineError.insufficientFunds(coinsNeeded: 5)

全部来自Apple文档。