Sobes.tech
Junior — Middle

გო ენის ევაკუაციის მექანიზმის კონცეფცია და მისი დანიშნულება

sobes.tech AI

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

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

  • panic — ეს არის გამოძახება, რომელიც აჩერებს ნორმალურ პროგრამის შესრულებას, იწვევს გადადებული ფუნქციების (defer) ჯაჭვს და საბოლოოდ ამთავრებს პროგრამას, თუ panic არ არის დამუშავებული.
  • recover — ეს არის ფუნქცია, რომელიც შეიძლება გამოიძახოს defer-ის შიგნით, რათა იპოვოს პანიკა და თავიდან აიცილოს პროგრამის დასრულება.

მექანიზმის მიზანია:

  • საშუალებას აძლევს მართოს კრიტიკული შეცდომები, რომლებიც შეუძლებელია ან არასასურველია ჩვეულებრივი გზით დამუშავება.
  • უზრუნველყოფს შეცდომის შემდეგ აღდგენის და პროგრამის შესრულების გაგრძელების შესაძლებლობას.

მაგალითი:

func safeDivide(a, b int) int {
    defer func() {
        if r := recover(); r != nil {
            fmt.Println("აღდგენა პანიკიდან:", r)
        }
    }()
    if b == 0 {
        panic("ნულზე გაყოფა")
    }
    return a / b
}

აქ, ნულზე გაყოფის მცდელობისას, გამოიძახება panic, მაგრამ recover-ის წყალობით, პროგრამი არ დასრულდება მოულოდნელად და შეცდომა იქნება დამუშავებული.