求大神指教, 如何写一个全局recover,保证服务不会因为go程里面的panic整个挂掉

ywdhzxf · · 3669 次点击
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(&#34;done&#34;) // Println executes normally even if there is a panic if x := recover(); x != nil { log.Printf(&#34;run time panic: %v&#34;, x) } }() log.Println(&#34;start&#34;) g() } 一个语言的spec是什么概念你明白么? 笑死人了。
#37
更多评论
polaris
社区,需要你我一同完善!
没法全局,只能每个 gorouitne 自己 recover 自己。
#1
<a href="/user/polaris" title="@polaris">@polaris</a> 如果不考虑go程的话可以监听, 但是go程里面不知道咋监听...
#2