我真的不明白这段代码是如何工作的,特别是e.(Exit)
,有人可以解释一下吗?
type Exit struct{ Code int }
func handleExit() {
if e := recover(); e != nil {
if exit, ok := e.(Exit); ok == true {
os.Exit(exit.Code)
}
panic(e)
}
}
func main() {
defer handleExit()
panic(Exit{1})
}