0Pricing
Swift Academy · Урок

Цепочки optional и основы обработки ошибок

Используйте цепочки optional, шаблоны guard, try?/try! и do/catch для обработки отсутствующих значений и ошибок. Изучите Result как альтернативу.

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

Введение

В этом уроке опциональные значения связаны с обработкой ошибок. Изучите цепочки вызовов, шаблоны с проверкой, оператор условной обработки/оператор принудительной обработки и Result.

Цепочки вызовов для опциональных значений

Цепочка вызовов для опциональных значений (a?.b?.c) останавливается и возвращает nil, если любое звено равно nil.

struct User { var address: Address? }
struct Address { var city: String }
let u: User? = User(address: Address(city: "Paris"))
print(u?.address?.city)   // Optional("Paris")

Шаблон guard

Проверка с выходом завершает выполнение досрочно, если опциональное значение равно nil, после чего распакованное значение остаётся доступным.

func greet(_ name: String?) {
    guard let n = name else {
        print("No name")
        return
    }
    print("Hello, \\(n)!")
}
greet(nil)
greet("Ada")

Условная и принудительная обработка ошибок

Условная обработка ошибки возвращает nil при ошибке. Принудительная обработка ошибки приводит к сбою, если возникает ошибка.

enum ParseErr: Error { case bad }
func parse(_ s: String) throws -> Int {
    guard let n = Int(s) else { throw ParseErr.bad }
    return n
}
let ok = try? parse("10")   // Int?
let fail = try? parse("xx") // nil
// let crash = try! parse("xx")  // runtime crash

Блок do/catch

Блок do/catch явно обрабатывает выброшенные ошибки.

do {
    let n = try parse("42")
    print(n)
} catch {
    print("error:", error)
}

Тип Result

Result<T,ошибка> кодирует успешное выполнение или сбой без выбрасывания ошибки.

func safeParse(_ s: String) -> Result<Int,Error> {
    do { return .success(try parse(s)) }
    catch { return .failure(error) }
}
print(safeParse("5"))
print(safeParse("oops"))

Вопрос о цепочках вызовов

Быстрая проверка: что делает цепочка вызовов для опциональных значений?

Итоги

Итоги: сочетайте опциональные значения и обработку ошибок. Используйте цепочки вызовов, проверки с выходом, условную и принудительную обработку ошибок, блоки do/catch и Result, чтобы безопасно управлять отсутствующими значениями и сбоями.

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

Урок «Цепочки optional и основы обработки ошибок» бесплатный?

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

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

Используйте цепочки optional, шаблоны guard, try?/try! и do/catch для обработки отсутствующих значений и ошибок. Изучите Result как альтернативу. Ты практикуешь Swift Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

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

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

Сколько времени занимает урок «Цепочки optional и основы обработки ошибок»?

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

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

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

Все уроки этого курса

  1. Цепочки optional и основы обработки ошибок
  2. do/catch и определение ошибок (перечисления)
  3. Типы Result — Result
← Назад к Swift Academy