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")
}
recover'ı defer 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.