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

ywdhzxf · · 3669 次点击
各位都淡定,讨论问题没必要生气,冷静,冷静 ^_^ panic并不代表是必须代码修复的严重bug,比如web服务,单个路由接口的处理函数中,某个 if 条件下的代码可能有一个nil指针导致的panic,但是这个 if 分支可能只是少量情况,大多数请求的调用,都不会触发这个panic 这时候recover+日志可以帮助排查bug,并且线上不至于宕机 如果收到panic就应该宕机等待人工修复,那才是线上服务长时间中断,而且panic如果必须宕机,那么 recover 存在的意义是什么?而且其他语言的try catch与recover是类似的 测试阶段应该尽量覆盖代码分支,线上服务可用也是需要保障的
#19
更多评论
polaris
社区,需要你我一同完善!
没法全局,只能每个 gorouitne 自己 recover 自己。
#1
<a href="/user/polaris" title="@polaris">@polaris</a> 如果不考虑go程的话可以监听, 但是go程里面不知道咋监听...
#2