Junior — Middle
Go-da defer çağırışında panikləri tutmaq və idarə etmək mümkündürmü?
sobes.tech Süni İntellekt
AI-dan cavab
Go dilində, defer istifadə edərək panikləri idarə etmək mümkündür, lakin defer çağırışı özü paniki tutmur; paniki recover() istifadə edilərək defer ilə gecikdirilmiş funksiyada tutulmalıdır.
Nümunə:
func safeCall() {
defer func() {
if r := recover(); r != nil {
fmt.Println("Panika tutuldu və işlənildi:", r)
}
}()
panic("nəsə səhv getdi")
}
Burada, recover() defer ilə gecikdirilmiş funksiyada çağırılır və safeCall içində yaranan panikləri tutmağa imkan verir. Beləliklə, panikləri birbaşa defer içində "tutmaq" mümkün deyil, lakin onları recover() ilə gecikdirilmiş funksiyada idarə etmək olar.