0Pricing
Swift Academy · Ders

try await ve hata yayılımı

Hata fırlatabilen async işlevlerle try await kullanın, başarısızlıkları do/catch ile ele alın ve hataları temiz biçimde üst katmanlara yayın ( CancellationError dahil).

try await ve hata yayılımı, CoddyKit'te ücretsiz bir Swift Academy dersidir. Bu, 3 dersinin 3. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Swift Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Swift Academy kursu toplamda 3 dersten oluşur.

try await neden kullanılır?

try await, hata fırlatan eşzamansız bir işlevi çağırır. İşlev hata fırlatırsa siz yakalamadığınız sürece hata üst katmanlara aktarılır. Ayrıca hatayı Optional'a dönüştürmek için try? kullanabilirsiniz.

Hata fırlatan async + do/catch

Hata fırlatan async bir işlev oluşturun ve başarısızlıkları ele almak için onu do/catch içinde try await ile çağırın.

enum NetError: Error { case offline; case badStatus(Int) }

func fetchNumber(from ok: Bool) async throws -> Int {
    try await Task.sleep(nanoseconds: 100_000_000)
    if !ok { throw NetError.offline }
    return 7
}

Task {
    do {
        let n = try await fetchNumber(from: true)
        print("value:", n)          // 7
    } catch {
        print("failed:", error)     // handled here
    }
}

Hataları dönüştürme

Hata fırlatmak yerine bir Optional elde etmek için try? kullanın. Başarısız olamayacağından emin olmadıkça try! kullanmaktan kaçının.

Task {
    // try? converts failure to nil
    let maybe = try? await fetchNumber(from: false)
    print("optional result:", String(describing: maybe)) // nil on error

    // ⚠️ try! will crash if an error is thrown — avoid in production
    // let forced = try! await fetchNumber(from: false)
}

Hataları üst katmana aktarma

Hataları üst katmana aktarmak için çağıranları async throws olarak işaretleyin; hatalar daha üst bir sınırda ele alınabilir.

func loadProfile(ok: Bool) async throws -> String {
    let id = try await fetchNumber(from: ok)   // propagate on error
    return "id:\\(id)"
}

Task {
    do {
        let s = try await loadProfile(ok: true)
        print(s) // "id:7"
    } catch {
        print("propagated:", error)
    }
}

Belirli hataları yakalama

Örüntü eşleştirmeli catch bloklarını kullanın. Kapanış yollarını hızlı ve sessiz tutmak için önce CancellationError durumunu ele alın.

enum FileError: Error { case notFound }

func mightCancel() async throws {
    for _ in 0..<5 {
        try Task.checkCancellation()                 // throws CancellationError
        try await Task.sleep(nanoseconds: 30_000_000)
    }
}

Task {
    let t = Task { try await mightCancel() }
    t.cancel()
    do {
        try await t.value
    } catch is CancellationError {
        print("cancelled cleanly")                   // handle cancellation separately
    } catch {
        print("other error:", error)
    }
}

Yönergeler

İpuçları:

  • Karar verebilecek bir sınıra (kullanıcı arayüzü, CLI veya en üst düzey Task) ulaşana kadar try ile hataları üst katmana aktarın.
  • Açıklık için alan hatalarını (numaralandırmaları) tercih edin.
  • Yalnızca yokluk kabul edilebilirse try? ile dönüştürün.
  • CancellationError durumunu ayrı olarak yakalayın.

try await ile hata yönetimi

Hızlı kontrol: try await f() hatalara ne yapar?

Özet

Özet: Hata fırlatan eşzamansız işlevlerle try await kullanın, yardımcı işlevlerden gelen hataları üst katmana aktarın, Optional kullanımı uygunsa try? ile dönüştürün ve CancellationError durumunu açıkça yakalayın.

Sıkça Sorulan Sorular

“try await ve hata yayılımı” dersi ücretsiz mi?

Evet — “try await ve hata yayılımı” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Swift Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Swift Academy kursu toplamda 3 dersten oluşur.

“try await ve hata yayılımı” dersinde ne öğreneceğim?

Hata fırlatabilen async işlevlerle try await kullanın, başarısızlıkları do/catch ile ele alın ve hataları temiz biçimde üst katmanlara yayın ( CancellationError dahil). Swift Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

Swift Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Swift Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 3 dersinin 3. dersidir.

“try await ve hata yayılımı” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu Swift Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Swift Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. Yapılandırılmış eşzamanlılık ve async işlevler
  2. async let, Task ve iptal
  3. try await ve hata yayılımı
← Swift Academy Sayfasına Dön