Sobes.tech
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ş defer fonksiyonlarını çağırır.
  • defer — bir fonksiyonun yürütülmesini, mevcut fonksiyondan çıkışa kadar erteleyerek, panic sonrası temizlik veya işlem yapmaya olanak tanır.
  • recover — bir defer fonksiyonu 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.