背景
在go中要保证程序正常运行,则要捕获相应的panic异常,使得程序不崩溃,并打印出相应问题使得能调试问题点
Code
package main
import (
"fmt"
"runtime/debug"
)
func RecoverAndStack() {
if err := recover(); err != nil {
fmt.Printf("panic occurred: %s\n, debug stack: %s", err, string(debug.Stack()))
}
}
func Start() {
go runc {
defer RecoverAndStack()
// do something
}
}