Golang的recover使用

137 阅读1分钟

背景

在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
    }
}