0Pricing
Swift Academy · Урок

Обработка ошибок

Обработка ошибок

«Обработка ошибок» — бесплатный урок Swift Academy на CoddyKit. Это урок 1 из 1. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Swift Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Swift Academy содержит 1 уроков всего.

Введение

Здравствуйте,

Во время работы приложения могут возникать ошибки, связанные с кодом приложения (ошибки логики и т. д.) или со средой, в которой оно работает.

Для выявления и контроля возникающих ошибок можно использовать обработку ошибок.

Типы ошибок

После возникновения ошибки обработка ошибок может предотвратить нарушение потока выполнения приложения, записать ошибки в журнал или в некоторых случаях закрыть приложение (если продолжение работы невозможно).

Некоторые возникающие ошибки могут быть вызваны логическими ошибками в коде, допущенными разработчиками программного обеспечения. Например, приложение выдаст ошибку, если принудительно извлечь значение опционала, о чём мы узнали в предыдущем разделе.

В некоторых случаях ошибки могут возникать независимо от разработчика. Например, если на устройстве, где работает приложение, недостаточно места на диске, в приложении снова возникнет ошибка.

Перечисление пользовательских ошибок

Мы можем самостоятельно определить пользовательские ошибки с помощью перечисления. В приведённом ниже примере типы ошибок, которые могут возникнуть при вводе данных кредитной карты, добавлены под именем CreditCardError.

enum CreditCardError: Error {
    case insufficientFunds
    case issuerDeclined
    case invalidCVC
}

Ключевое слово throws

Если написанный нами метод может вызывать ошибку, в определение метода добавляется ключевое слово throws.

Ниже приведён пример синтаксиса.

func processPayment(creditcard: String) throws {
}

Ключевое слово throw

Иногда при написании кода разработчику может понадобиться выбросить ошибку.

Представим ситуацию: мы пишем платёжную систему для банка. 

При оплате кредитной картой на балансе клиента недостаточно средств. В этом случае можно выбросить ошибку о недостаточности средств.

throw CreditCardError.insufficientFunds

Блок do-catch

Блок do-catch

Когда мы хотим использовать методы, которые могут вызывать ошибки в приложении, мы можем перехватить возможные ошибки, поместив этот код в блоки do-catch.

Код, который может вызвать ошибки, размещается в блоке do, а возможные ошибки перехватываются в блоке catch.

Рассмотрим пример ниже

do {
   //Code block that may throw an Error
}
catch let error {
    print(error)
}

Синтаксис try

Помимо ключевого слова try, существуют варианты использования try! и try? 

Рассмотрим наш пример.

// if an error was thrown, app will crash
let result = try! doSomething() 


if let result = try? make() {
    //If the make method is successful, the result is unwrap. It is a very elegant use.
} else {
    //make() threw an error.
}

Несколько блоков catch

Если вызываемый метод может выбрасывать несколько ошибок, мы можем фильтровать их и направлять поток выполнения приложения в зависимости от типа ошибки.

В приведённом ниже примере каждый блок catch обрабатывает разные возможные ошибки.

do {
    try doSomething()
} catch CustomError.errorOne {
  //handle errorOne Error
} catch CustomError.errorTwo(let customErr) {
   //handle errorTwo Error with customErr
}

Поздравляем

Поздравляем 🎉

В этом уроке мы узнали, как обрабатывать ошибки приложения с помощью Swift.

До встречи на следующем уроке.

Обработка ошибок — иллюстрация 9

Часто задаваемые вопросы

Урок «Обработка ошибок» бесплатный?

Да — полный текст урока «Обработка ошибок» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Swift Academy, подпишись на CoddyKit PRO. Курс Swift Academy содержит 1 уроков всего.

Чему я научусь в уроке «Обработка ошибок»?

Обработка ошибок Ты практикуешь Swift Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Swift Academy?

Предыдущий опыт не требуется. Swift Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 1.

Сколько времени занимает урок «Обработка ошибок»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Swift Academy?

Да. Каждый урок Swift Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

← Назад к Swift Academy