此代码为了保障出错能够继续执行,类似于Java 的 try catch

defer func() {
if panic_err := recover(); panic_err != nil {
var buf [4096]byte
n := runtime.Stack(buf[:], false)
log.Errorf("xxx panic, panic_err:%+v, panic_stack:%s.", panic_err, string(buf[0:n]))
}
}()