Junior — Middle
Izskaidrojiet funkciju panic, defer un recover savstarpējās mijiedarbības mehānismu Go programmēšanas valodā.
sobes.tech AI
Atbilde no AI
Go valodā funkcijas panic, defer un recover ir saistītas ar kļūdu apstrādi un izņēmuma situācijām.
panic— izraisa pašreizējās funkcijas strauju beigas un sāk "panikas" procesu, kas izplatās pa izsaukumu steku un izsauc atliktāsdeferfunkcijas.defer— atlikt funkcijas izpildi līdz pašreizējās funkcijas iziešanai, ļaujot veikt tīrīšanu vai apstrādi pēcpanic.recover— ļauj "noķert"paniciekšā atliktā funkcijā un novērst programmas noslīkšanu.
Piemērs:
func piemērs() {
defer func() {
if r := recover(); r != nil {
fmt.Println("Atkopts no panikas:", r)
}
}()
fmt.Println("Pirms panikas")
panic("kaut kas nogāja greizi")
fmt.Println("Šis netiks izpildīts")
}
Šeit, panic izraisa kļūdu, defer ar recover to noķer, un programma turpina darbu bez avārijas.