Junior — Middle
Go tilida istisnolar (Exception) nima ekanligini bilasizmi?
sobes.tech AI
AIdan javob
Go tilimida an'an'ava (Exception) an'an'ava yo'q, Java yoki Python kabi. O'rniga, Go xatoliklarni boshqarish uchun qaytariladigan qiymatlarni ishlatadi: funksiya xatolik qiymatini (error) qaytaradi va uni tekshirish kerak.
Ammo, Go'da panik (panic) va recover (qaytarish) mexanizmi mavjud bo'lib, uni xatoliklar uchun analog sifatida ko'rish mumkin, lekin u kritik xatoliklar uchun mo'ljallangan va odatiy xatoliklarni boshqarish uchun ishlatilmasligi kerak.
Go'da xatoliklarni boshqarish misoli:
func divide(a, b int) (int, error) {
if b == 0 {
return 0, fmt.Errorf("nolga bo'lish")
}
return a / b, nil
}
natija, err := divide(10, 0)
if err != nil {
fmt.Println("Xato:", err)
} else {
fmt.Println("Natija:", natija)
}
Panik/recover ishlatish:
func mayPanic() {
panic("narsalar yomon ketdi")
}
func main() {
defer func() {
if r := recover(); r != nil {
fmt.Println("Panikdan keyin tiklandi:", r)
}
}()
mayPanic()
fmt.Println("Bu kod bajarilmaydi")
}