在 Golang 中,没有恢复的 panic 会使进程崩溃,所以我最终将以下代码片段放在每个函数的开头:


defer func() {

    if err := recover(); err != nil {

        fmt.Println(err)

    }

}()

只是为了防止我的程序崩溃。现在我想知道,这真的是要走的路吗?因为我觉得到处放同样的代码看起来有点奇怪。


在我看来,Java 方式将异常冒泡到调用函数,直到主函数是控制异常/恐慌的更好方法。我知道这是 Go 的设计,但是像 Go 一样立即使进程崩溃有什么好处?