`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ı gereken gerçekten istisnai durumlar için kullanılan yerleşik bir fonksiyondur. Zarif bir şekilde ele aldığınız normal hataların aksine, panic, programınızın mantığı veya ortamıyla ilgili temelde yanlış bir şey olduğunu gösteren felaket niteliğindeki başarısızlıklar için ayrılmıştır.
panic çağrıldığında, mevcut fonksiyonun normal yürütülmesini anında durdurur ve çağrı yığınını geri sarmaya başlar. Bu, onu çağıran kod tarafından ele alınabilen hataların döndürüldüğü tipik Go yaklaşımından çok farklı kılar.
İdiyomatik Go'da, panic nadir kullanılır. Go topluluğu, panic tabanlı hata yönetimi yerine dönüş değerleri aracılığıyla açık hata yönetimini güçlü bir şekilde tercih eder. Bir dizinin sınırları dışına erişilmesi, bir nil işaretçisinin (pointer) dereferans edilmesi veya bir kütüphanenin bir programlama hatasını gösteren imkansız bir durumu tespit etmesi gibi durumlarda panic ile karşılaşabilirsiniz.
Çoğu Go programı, öğrenmekte olduğunuz standart hata arayüzünü kullanarak hataları düzgün bir şekilde ele almalıdır. panic, yalnızca programınızın çalışmaya devam etmesi için gerçekten makul bir yol kalmadığında düşünülmelidir.
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ışlar