Sobes.tech
Junior — Middle

გა ენის გამონაკლისები (Exception) რა არის, იცით?

sobes.tech AI

პასუხი AI-სგან

გო ენისთვის ტრადიციული გამონაკლისები (Exception) არ არსებობს, როგორც Java ან Python-ში. ამის ნაცვლად, Go იყენებს დაბრუნების მნიშვნელობებს შეცდომების მართვისთვის: ფუნქცია აბრუნებს შეცდომის მნიშვნელობას (error), რომელიც უნდა იყოს შემოწმებული.

თუმცა, Go-ში არსებობს პანიკის (panic) და აღდგენის (recover) მექანიზმი, რომელიც შეიძლება განიხილებოდეს როგორც ანალოგი გამონაკლისების, მაგრამ ის განკუთვნილია კრიტიკული შეცდომებისთვის და არ უნდა გამოიყენოს ჩვეულებრივი შეცდომების მართვისთვის.

შეცდომის მართვის მაგალითი Go-ში:

func divide(a, b int) (int, error) {
    if b == 0 {
        return 0, fmt.Errorf("ნულზე გაყოფა")
    }
    return a / b, nil
}

შედეგი, err := divide(10, 0)
if err != nil {
    fmt.Println("შეცდომა:", err)
} else {
    fmt.Println("შედეგი:", შედეგი)
}

პანიკის/აღდგენის გამოყენება:

func mayPanic() {
    panic("რაღაცა მოხდა")
}

func main() {
    defer func() {
        if r := recover(); r != nil {
            fmt.Println("აღდგა პანიკიდან:", r)
        }
    }()
    mayPanic()
    fmt.Println("ეს კოდი არ შესრულდება")
}