在程序异常退出时,在主方法监听并执行统一的处理. 如果正常状态退出也能监听到就更好了
在main上面套一层就好了
package main
import (
"fmt"
"os"
)
func main() {
os.Exit(run())
}
func run() (code int) {
defer func() {
if r := recover(); r != nil {
fmt.Println("panic")
code = 2
return
}
if code != 0 {
fmt.Println("err")
return
}
fmt.Println("ok")
code = 0
}()
fmt.Println("run")
return
}
7 回答5.3k 阅读
6 回答6.8k 阅读✓ 已解决
4 回答2.3k 阅读
1 回答3.3k 阅读
2 回答909 阅读✓ 已解决
2 回答2.2k 阅读
1 回答2.2k 阅读
异常都是靠recover捕捉来恢复的
正常退出的监听, os/signal, 请。
以下只是对于 ctrl + c 的信号捕捉示例