`panic` Kavramını Anlamak
Coddy'nin GO Journey'sinin Mantık ve Akış bölümünün bir parçası. Ders 42 / 68.
Go'da panic, programınızın kurtarılamaz bir hatayla karşılaştığı ve hemen durması gerektiği gerçekten istisnai durumlarda kullanılan yerleşik bir işlevdir. Zarif bir şekilde ele aldığınız normal hataların aksine, panic, programınızın mantığında veya ortamında temelden something wrong olduğunu gösteren felaket niteliğindeki hatalar için ayrılmıştır.
panic çağrıldığında, geçerli işlevin normal yürütmesini hemen durdurur ve çağrı yığınını çözmeye başlar. Bu, çağıran kod tarafından işlenebilen hataları döndürmeye dayanan tipik Go yaklaşımından onu oldukça farklı kılar.
İdiomatik Go'da panic nadiren kullanılır. Go topluluğu, panic tabanlı hata işleme yerine dönüş değerleri aracılığıyla açık hata işlemeyi güçlü bir şekilde tercih eder. Bir diziye sınırları dışında erişme, nil bir işaretçinin referansını kaldırma veya bir kütüphanenin bir programlama hatasına işaret eden imkânsız bir durum tespit etmesi gibi durumlarda panic ile karşılaşabilirsiniz.
Çoğu Go programı, hakkında bilgi edindiğin standart error arayüzünü kullanarak hataları düzgün bir şekilde ele almalıdır. Programının çalışmaya devam etmesi için gerçekten makul bir yol olmadığında yalnızca panic kullanmayı düşünmelisin.
Kendin dene
Bu ders bir kod alıştırması içermiyor.
Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Mantık ve Akış bölümündeki tüm dersler
1İleri Seviye Kontrol Akışı
`fallthrough` ile Switchİç İçe Döngülerden ÇıkmaBelirli Bir Döngüye Devam Etme`goto` İfadesiÖzet - İleri Seviye Döngü Kontrolü4Proje: Basit Görev Listesi
Proje KurulumuGörev Ekleme7Derinlemesine Hata Yönetimi
Özel Hata Türleri`%w` ile Hataları Sarmalama`errors.Is` ile Sarmalı Açma`errors.As` ile Sarmalı Açma`panic` Kavramını Anlamak`recover` KullanımıÖzet - Güvenli Bölme2Structlar ve Metotlar
Structlarda Metot TanımlamaValue Receiver'larPointer Receiver'larReceiver SeçimiMetotlar ve FonksiyonlarÖzet - Struct Davranışı5Derinlemesine Map'ler
Struct Map'leriMap Değeri Olarak Pointer'larNil Map KontrolüMap'leri KarşılaştırmaÖzet - Kelime Frekansı Sayacı3Arayüzler (Temeller)
Arayüz Nedir?Bir Arayüz TanımlamaBir Arayüzü UygulamaArayüz Tiplerini KullanmaBoş ArayüzTip OnaylamalarıTip SeçimiÖzet - Şekiller ve DavranışlarKendi başına pratik yap: Online Go derleyicisi