Junior — Middle
Go programlama dilinde panic, defer ve recover fonksiyonlarının etkileşim mekanizmasını açıklayın.
sobes.tech yapay zeka
AI'dan gelen yanıt
Go dilinde, panic, defer ve recover fonksiyonları hata yönetimi ve istisnai durumlarla ilgilidir.
panic— mevcut fonksiyonun aniden sona ermesine neden olur ve "panik" sürecini başlatır, bu süreç çağrı yığını boyunca yukarı doğru ilerler ve ertelenmişdeferfonksiyonlarını çağırır.defer— bir fonksiyonun yürütülmesini, mevcut fonksiyondan çıkışa kadar erteleyerek,panicsonrası temizlik veya işlem yapmaya olanak tanır.recover— birdeferfonksiyonu içinde bir paniki "yakalamaya" ve programın sona ermesini engellemeye izin verir.
Örnek:
func örnek() {
defer func() {
if r := recover(); r != nil {
fmt.Println("Panikten kurtuldu:", r)
}
}()
fmt.Println("Panik öncesi")
panic("bir şeyler ters gitti")
fmt.Println("Bu çalışmayacak")
}
Burada, panic bir hata tetikler, defer ile recover onu yakalar ve program hata vermeden çalışmaya devam eder.