Junior — Middle
Горутинада паника болуп калса, кандай кесепеттер күтүлүүдө?
sobes.tech AI
AIден жооп
Эгер goroutine ичинде паника (panic) пайда болсо, ошол goroutine иштөөсү үзгүлтүккө учурап, стекти ажыратуу (stack unwinding) процесси башталат, ал убакта defer менен белгиленген функциялар чакырылат.
Эгер паника башкара албай калса (мисалы, recover аркылуу defer ичинде), ал бүт программадын аякталышына алып келет.
Маанилүү нерсе — бир goroutineдеги паника башка goroutineдерге түздөн-түз таасир этпейт — алар иштөөдө калат, эгер гана паника бүт программага токтотуучу болбосо.
Паниканы башкаруу мисалы:
func() {
defer func() {
if r := recover(); r != nil {
fmt.Println("Паника кармалды жана иштетилди:", r)
}
}()
panic("эч нерсе туура эмес болду")
}()