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