Junior — Middle
Go dasturlash tilida panic, defer va recover funksiyalarining o'zaro ta'sir mexanizmini tushuntiring.
sobes.tech AI
AIdan javob
Go tilida, panic, defer va recover funksiyalari xatoliklarni boshqarish va istisno holatlari bilan bogʻliq.
panic— joriy funksiyani keskin yakunlaydi va "panik" jarayonini boshlaydi, bu jarayon chaqirishlar stekini yuqoriga qarab tarqaladi va kechiktirilgandeferfunksiyalarini chaqiradi.defer— funksiyaning bajarilishini joriy funksiyadan chiqishiga qadar kechiktiradi, bupanicdan keyin tozalash yoki ishlov berishni amalga oshirish imkonini beradi.recover— kechiktirilgan funksiyada panikni "ushlash" va dastur yakunlanishini oldini olish imkonini beradi.
Misol:
func misol() {
defer func() {
if r := recover(); r != nil {
fmt.Println("Panikdan tiklandi:", r)
}
}()
fmt.Println("Panikdan oldin")
panic("narsa noto'g'ri ketdi")
fmt.Println("Bu ishlamaydi")
}
Bu yerda, panic xato chaqiradi, defer bilan recover uni ushlaydi va dastur xatoliksiz davom etadi.