Sobes.tech
Middle

Агар шумо гуруҳро оғоз кунед ва дар он panic-ро даъват кунед, чӣ мешавад? Гуруҳ қатъ мешавад ё тамоми барнома?

sobes.tech AI

Ҷавоб аз AI

Агар дар goroutine panic рӯй диҳад, ин goroutine махсус бозмедорад, аммо тамоми барнома автоматӣ ба анҷом намерасад. Паника дар goroutine наметавонад тамоми goroutine ё барномаро боздорад, ба истиснои он, ки он ба сатҳи реша расида ва бе коркард мондааст.

Барои пешгирӣ аз қатъии ногаҳонии барнома, шумо метавонед recover-ро дар дохили ҳамин goroutine ё дар функсияи даъваткунанда истифода баред, то паникаро дастгирӣ ва идора кунед.

Масалан:

func() {
    defer func() {
        if r := recover(); r != nil {
            fmt.Println("Паника дар goroutine дастгирӣ шуд:", r)
        }
    }()
    panic("як чиз нодуруст шуд")
}()

Дар ин мисол, паника ба қатъи тамоми барнома оварда намерасаду дар дохили goroutine идора карда мешавад.