前提
linux 有个命令 echo $? 输出上次执行的退出码 利用这个可以直接查看退出码
实验1
package main
func main() {
panic("aaa")
}
发现golang panic 的退出码是2
再来一个实验
package main
import "os"
func main() {
defer panic("aaa")
os.Exit(3)
}
退出码是3,表示exit时不会执行defer函数
总结
- os.Exit不要滥用,最好在main里使用
- 最好不要在协程中使用,否则整个程序会停止