//Recover 会捕捉到(执行defer)
//panic("test")
//不会捕捉到(不执行defer),整个程序退出
//os.Exit(1)
//自带包log,不会被捕捉到(不执行defer), 当前goroutine退出
//log.Fatal("test"), 底层调用os.Exit(1)
// 放入子go (执行defer), 但是不会影响到其他go程序; 本身不是panic或者错误,会执行所有的deferred call
//runtime.Goexit()
// 挂起当前goroutine,释放p,给其他goroutine执行,而后如果有机会继续执行当前g, 不会引起 panic,或者程序或goroutine异常退出
//runtime.Gosched()