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-ის წყალობით, პროგრამი არ დასრულდება მოულოდნელად და შეცდომა იქნება დამუშავებული.