Junior — Middle
Go'da defer ichida recover funksiyasidan foydalanishning nima uchun zarurati bor?
sobes.tech AI
AIdan javob
Go tilida, recover funksiyasi panic holatlarini ushlash va dasturning toqat qilmasdan yakunlanishini oldini olish uchun ishlatiladi. Biroq, recover faqat defer ichida chaqirilganda ishlaydi.
recoverni defer ichida ishlatish quyidagilarni imkonini beradi:
- Xavfsiz tarzda panikni boshqarish, masalan, xatoni log qilish yoki resurslarni tozalash.
- Mümkin bo'lsa, panikadan keyin dastur ishini davom ettirish.
Misol:
func safeFunction() {
defer func() {
if r := recover(); r != nil {
fmt.Println("Panikadan qutulish:", r)
}
}()
// Panic chaqirishi mumkin bo'lgan kod
panic("narsa noto'g'ri ketdi")
}
Agar recover defer tashqarisida chaqirilsa, u panikni ushlamaydi va dastur avariya bilan tugaydi. Shuning uchun, recover har doim defer ichida joylashtiriladi, to'g'ri holatlarni boshqarish uchun.