Ilovangizda istisnolar va xatolar qanday boshqariladi?
sobes.tech AI
AIdan javob
Go tilida xatoliklarni boshqarish ko'plab boshqa tillardan farq qiladi, chunki bu yerda odatiy ma'noda istisnolar yo'q. O'rniga, funksiyalar odatda xato (error) qiymatini ikkinchi natija sifatida qaytaradi.
Asosiy yondashuvlar:
-
Funktsiyani chaqirgandan so'ng xatoni tekshirish:
result, err := someFunction() if err != nil { // xato bilan ishlash log.Println("Xato:", err) return err } // result bilan davom etish -
O'z xato turlarini yaratish
errors.Newyokifmt.Errorfyordamida ko'proq ma'lumot beradigan xabarlar uchun. -
Panik (
panic) va tiklash (recover) kamdan-kam ishlatiladi, asosan muhim xatolar uchun, ular normal oqimda yuz bermasligi kerak. -
Xatolarni log qilish va ularni yuqoriga, stek bo'ylab qaytarish uchun markazlashtirilgan ishlov berish.
Xato bilan ishlash misoli:
package main
import (
"errors"
"fmt"
)
func divide(a, b float64) (float64, error) {
if b == 0 {
return 0, errors.New("nolga bo'lish")
}
return a / b, nil
}
func main() {
result, err := divide(10, 0)
if err != nil {
fmt.Println("Xato:", err)
return
}
fmt.Println("Natija:", result)
}
Shu tarzda, Go da xatolar aniq boshqariladi, bu esa kodning o'qilishi va ishonchliligini oshiradi.