Junior — Middle
Go proqramlaşdırma dilində panic, defer və recover funksiyalarının qarşılıqlı əlaqə mexanizmini izah edin.
sobes.tech Süni İntellekt
AI-dan cavab
Go dilində, panic, defer və recover funksiyaları səhvlərin idarə olunması və istisna vəziyyətləri ilə əlaqəlidir.
panic— cari funksiyanın qəfil sonlanmasına səbəb olur və "panik" prosesini başlatır, bu proses çağrı yığını boyunca yuxarı doğru yayılır və gecikdirilmişdeferfunksiyalarını çağırır.defer— bir funksiyanın icrasını cari funksiyadan çıxışa qədər təxirə salır, bu dapanicsonrası təmizləmə və ya emal üçün imkan yaradır.recover— gecikdirilmiş funksiyada paniki "yaxalamağa" və proqramın bağlanmamasına imkan verir.
Nümunə:
func nümunə() {
defer func() {
if r := recover(); r != nil {
fmt.Println("Panikdən bərpa olundu:", r)
}
}()
fmt.Println("Panikdən əvvəl")
panic("nəsə səhv getdi")
fmt.Println("Bu işləməyəcək")
}
Burada, panic bir xətanı çağırır, defer ilə recover onu tutar və proqram çökmədən işləməyə davam edir.