Junior — Middle
რა არის საჭირო, რომ ფუნქცია recover გამოიყენოს defer-ის შიგნით Go-ში?
sobes.tech AI
პასუხი AI-სგან
Go ენის ფარგლებში, recover ფუნქცია გამოიყენება panic-ების აღსაკვეთად და პროგრამის მოულოდნელი შეწყვეტის თავიდან ასაცილებლად. თუმცა, recover მუშაობს მხოლოდ მაშინ, როდესაც იგი გამოიძახება defer-ის შიგნით.
recover-ის გამოყენება defer-ის შიგნით საშუალებას აძლევს:
- უსაფრთხოდ მართოს პანიკა, მაგალითად, შეცდომის ჩაწერით ან რესურსების გაწმენდით.
- განაგრძოს პროგრამის შესრულება პანიკის შემდეგ, თუ ეს შესაძლებელია.
მაგალითი:
func safeFunction() {
defer func() {
if r := recover(); r != nil {
fmt.Println("პანიკისგან განახლება:", r)
}
}()
// კოდი, რომელიც შეიძლება გამოიწვიოს panic
panic("რაღაცა არასწორად წავიდა")
}
თუ recover გამოიძახება defer-ის გარეთ, იგი ვერ იჭერს პანიკას და პროგრამა მოულოდნელად დასრულდება. ამიტომ, recover ყოველთვის უნდა იყოს განთავსებული defer-ის შიგნით, სწორი გამონაკლისების მართვისთვის.