Başarısızlık Temizliği İçin errdefer
Yalnızca bir şey başarısız olduğunda yapılan işi geri alın.
Başarısızlık Temizliği İçin errdefer, CoddyKit'te ücretsiz bir Zig Academy dersidir. Bu, 4 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, Zig Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Zig Academy kursu toplamda 4 dersten oluşur.
Yalnızca Başarısızlıkta Temizleme
Bazen bir işlem başarısız olduğunda yapılan işi geri almanız, başarılı olduğunda ise korumanız gerekir. errdefer tam olarak bu durum içindir.
errdefer ile Tanışınız
errdefer, kapsamdan çıkılırken çalışacak kodu planlar; ancak yalnızca işlev o noktadan sonra bir hata döndürürse çalışır.
errdefer allocator.free(buffer);defer Her Zaman, errdefer Hata Durumunda
defer, kapsam nasıl sona ererse ersin çalışır. errdefer ise yalnızca hata akışında çalışır; bu nedenle başarı durumunda tamamen atlanır.
Yarım Kalmış Sonucu Serbest Bırakınız
Önce ayırın, ardından errdefer ile free işlemini planlayın. Daha sonraki bir adım başarısız olursa arabellek serbest bırakılır; tüm adımlar başarılı olursa onu korur ve döndürürsünüz.
const buf = try allocator.alloc(u8, n);
errdefer allocator.free(buf);
try fill(buf);Sıra Ayırmayı Yansıtır
Her errdefer ifadesini ilgili edinme işleminden hemen sonra yerleştirin. Hata durumunda ters sırayla çalışarak kaynakları güvenli bir sırayla serbest bırakırlar.
const a = try open();
errdefer a.close();
const b = try open();
errdefer b.close();Başarı Çalışmanızı Korur
İşlev bir hata yerine değer döndürdüğünde tüm errdefer ifadeleri atlanır. Çağıran, tamamen oluşturulmuş sonucu alır.
return buf;Tetikleme Noktası Önemlidir
Bir errdefer yalnızca kaydedildikten sonra oluşan hataları korur. O satırdan önceki hatalar onu çalıştıramaz; bu nedenle onu erken yerleştirin.
Hatayı Yakalayın
Temizleme sırasında incelemek için hatayı bir errdefer içinde yakalayabilirsiniz; örneğin geri almayı hangi hatanın tetiklediğini günlüğe kaydetmek için.
errdefer |e| std.debug.print("failed: {}\n", .{e});Sızıntısız Yapıcılar Oluşturur
Kaynak ayırıp sonrasında başarısız olabilecek işlevler, sızıntısız kalmak için errdefer kullanır. Kısmi çalışma, herhangi bir hatada otomatik olarak geri alınır.
try ile Birleştirin
Her try hatada erken çıkabilir. Bir errdefer kaydedilmişse bu erken çıkış, geri sarma işleminden önce temizlemenizi yine tetikler.
const x = try step();
errdefer rollback(x);
_ = try next(x);Geri Alma İçin Doğru Araç
Temizleme işlemi yalnızca işler ters gittiğinde yapılmalıysa errdefer kullanın. Hata yolundaki kaynak yönetimini tek ve anlaşılır bir satıra dönüştürür.
Hızlı Kontrol
Bir arabellek ayırıyorsunuz ve sonraki bir adım başarısız olabilir. Arabelleğin yalnızca başarısızlık durumunda serbest bırakılmasını istiyorsunuz. Ne kullanırsınız?
Özet
Hata yolunda kısmi çalışmayı geri almak için errdefer kullandınız, onu her edinme işleminden hemen sonra yerleştirdiniz ve başarılı sonuçları korudunuz. ✅
Yapay zeka eğitmeniyle Zig öğren — ücretsiz
Tarayıcında gerçek kod yaz ve çalıştır, 7/24 yapay zeka eğitmeninden anında yardım al; web'de ya da uygulamada kaldığın yerden devam et.
- Kurslar
- 30
- Dersler
- 120
Sıkça Sorulan Sorular
“Başarısızlık Temizliği İçin errdefer” dersi ücretsiz mi?
Evet — “Başarısızlık Temizliği İçin errdefer” 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 Zig Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Zig Academy kursu toplamda 4 dersten oluşur.
“Başarısızlık Temizliği İçin errdefer” dersinde ne öğreneceğim?
Yalnızca bir şey başarısız olduğunda yapılan işi geri alın. Zig 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.
Zig Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te Zig 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, 4 dersinin 3. dersidir.
“Başarısızlık Temizliği İçin errdefer” 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 Zig Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her Zig 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
- catch ile Kurtarma
- Belirli Hatalara Göre switch Kullanma
- Başarısızlık Temizliği İçin errdefer
- Hataları Sarma ve Yeniden Fırlatma