Middle
Go'da panik/recover (panic/recover) qanday ishlaydi?
sobes.tech AI
AIdan javob
Go tilida panic/recover mexanizmi istisnoiy holatlarni boshqarish uchun ishlatiladi.
panicjoriy goroutine ning kutilmagan yakunlanishiga olib keladi va "panik" jarayonini boshlaydi, bu jarayonda chaqirishlar steki (stack) yopiladi.- Stack yopilayotganda, kechiktirilgan funksiyalar (
defer) chaqiriladi. - Agar kechiktirilgan funksiyada
recover()chaqirilsa, panikani ushlash va dastur yakunini oldini olish mumkin.
recover() panic() ga yuborilgan qiymatni qaytaradi, agar u kechiktirilgan funksiyada panika vaqtida chaqirilsa. Agar kechiktirilgan funksiyadan tashqarida yoki panika bo'lmasa, nil qaytaradi.
Misol:
func safeCall() {
defer func() {
if r := recover(); r != nil {
fmt.Println("Panika ushlanadi:", r)
}
}()
panic("narsa noto'g'ri ketdi")
}
Shunday qilib, panic xatolikni boshlaydi, va recover uni boshqarish va dastur ishini davom ettirish imkonini beradi.