Sobes.tech
Junior — Middle

Go'da defer içinde recover fonksiyonunun kullanılması neden gereklidir?

sobes.tech yapay zeka

AI'dan gelen yanıt

Go dilinde, recover fonksiyonu panic durumlarını yakalamak ve programın ani şekilde sonlanmasını önlemek için kullanılır. Ancak, recover yalnızca defer içinde çağrıldığında çalışır.

recover'ın defer içinde kullanılması şunlara olanak tanır:

  • Güvenli bir şekilde panik durumunu ele almak, örneğin hatayı kaydetmek veya kaynakları temizlemek.
  • Mümkünse, panikten sonra programın çalışmasına devam etmek.

Örnek:

func safeFunction() {
    defer func() {
        if r := recover(); r != nil {
            fmt.Println("Panikten kurtuldu:", r)
        }
    }()
    // Panic oluşturabilecek kod
    panic("bir şeyler ters gitti")
}

recoverdefer dışında çağırmak, panik durumunu yakalamaz ve program ani şekilde sona erer. Bu nedenle, recover her zaman doğru şekilde ele alınması için defer içine yerleştirilir.