Junior — Middle
Go dilində istisnaların (Exception) nə olduğunu bilirsinizmi?
sobes.tech Süni İntellekt
AI-dan cavab
Go dilində ənənəvi istisnalar (Exception) yoxdur, Java və ya Python kimi. Əvəzinə, Go səhvləri idarə etmək üçün geri qaytarılan dəyərlərdən istifadə edir: funksiya səhv dəyərini (error) geri qaytarır və onu yoxlamaq lazımdır.
Ancaq, Go-da panik (panic) və recover (qurtarma) mexanizmi mövcuddur, bu da istisnalara bənzər kimi qəbul edilə bilər, lakin o, kritik səhvlər üçün nəzərdə tutulmuşdur və adi səhv idarəetməsi üçün istifadə edilməməlidir.
Go-da səhv idarəetmə nümunəsi:
func divide(a, b int) (int, error) {
if b == 0 {
return 0, fmt.Errorf("sıfıra bölmə")
}
return a / b, nil
}
nəticə, err := divide(10, 0)
if err != nil {
fmt.Println("Xəta:", err)
} else {
fmt.Println("Nəticə:", nəticə)
}
Panik/recover istifadə:
func mayPanic() {
panic("nəsə səhv getdi")
}
func main() {
defer func() {
if r := recover(); r != nil {
fmt.Println("Panikdən sonra bərpa edildi:", r)
}
}()
mayPanic()
fmt.Println("Bu kod icra olunmayacaq")
}