Как обработать сбой в iOS (Swift) приложении, используя «try», «catch» и «throw»? - PullRequest
1 голос
/ 05 марта 2019

Я работаю над приложением для 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 Ответ

2 голосов
/ 05 марта 2019

Посмотрите на яблочную документацию ( Представление и бросание ошибок ) об этом. Вместо использования fatalError вы должны выдать ошибку в вашей функции fetchRecommendations(). Вот почему вы вставили туда сигнальное слово throws, чтобы сигнализировать, что эта функция может выдать ошибку.

Ошибки выдаются с использованием слова throw, например:

throw VendingMachineError.insufficientFunds(coinsNeeded: 5)

Все из документации Apple.

...