在程序异常退出时,在主方法监听并执行统一的处理. 如果正常状态退出也能监听到就更好了
在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
}
2 回答1.4k 阅读
2 回答1.3k 阅读
2 回答1.3k 阅读
2 回答1.3k 阅读
3 回答841 阅读
2 回答1k 阅读
2 回答996 阅读
异常都是靠recover捕捉来恢复的
正常退出的监听, os/signal, 请。
以下只是对于 ctrl + c 的信号捕捉示例