我们的项目用的iris框架, 在接口里面开启go程后如果go程 panic 了, 则整个服务都会挂掉, 能不能写一个全局的 recover来监听go程的 panic
35楼 <a href="/user/focussoft" title="@focussoft">@focussoft</a> 既然你要提golang作者了。
那必然是要查spec了
来,看看spec里关于 panic的这一段
https://golang.org/ref/spec#Handling_panics
Handling panics
Two built-in functions, panic and recover, assist in reporting and handling run-time panics and program-defined error conditions.
然后题主要的 recover组件是直接写在spec里的
func protect(g func()) {
defer func() {
log.Println("done") // Println executes normally even if there is a panic
if x := recover(); x != nil {
log.Printf("run time panic: %v", x)
}
}()
log.Println("start")
g()
}
一个语言的spec是什么概念你明白么?
笑死人了。
#37
更多评论
<a href="/user/polaris" title="@polaris">@polaris</a> 如果不考虑go程的话可以监听, 但是go程里面不知道咋监听...
#2